好吧,我正试图从VB转到C#并取得了成功。
我收到以下错误:
最佳重载方法匹配 '_DataInteraction.stdReturnDataTable(string,ref System.Collections.Generic.List, string)'有一些无效的参数
必须使用'ref'关键字
两种引用:myParamList在
中用 ** 标注我在C#中有这段代码
{
List<SqlParameter> myParamList = new List<SqlParameter>();
SqlParameter myParam = default(SqlParameter);
myParam = new SqlParameter("@sAMAccountName", SqlDbType.VarChar);
myParam.Value = ID;
myParamList.Add(myParam);
**dt = _DI.stdReturnDataTable("cit_ResolveUser", myParamList, "x");**
return dt;
}
现在是stdReturnDataTable的代码(只是接受参数的顶部部分)
public static DataSet stdReturnDataset(string procedureName, ref List<SqlParameter> myParameters, string db)
{
//code
}
答案 0 :(得分:5)
正如错误消息所示,您应该使用ref
关键字传递参数:
dt = DataInteraction.stdReturnDataTable("cit_ResolveUser", ref myParamList, "ParabisIntranet");
另外,根据你的评论,它是一个静态方法,你不能通过实例变量调用它。相反,您需要使用typename来限定它。
但是我怀疑这里实际上不需要ref关键字,你可以将其从方法签名中删除。
public static DataSet stdReturnDataset(string procedureName,
List<SqlParameter> myParameters,
string db)
答案 1 :(得分:1)
您需要在方法调用中指定ref
关键字。
dt = _DI.stdReturnDataTable("cit_ResolveUser", ref myParamList, "ParabisIntranet");
答案 2 :(得分:1)
你需要ref keywoard:
dt = _DI.stdReturnDataTable(“cit_ResolveUser”, ref myParamList,“ParabisIntranet”);