-1

好的,我正在尝试从 VB 迁移到 C#,但效果好坏参半。

我收到以下错误:

  1. '_DataInteraction.stdReturnDataTable(string, ref System.Collections.Generic.List, string)' 的最佳重载方法匹配有一些无效参数

  2. 参数 2 必须使用 '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
    }
4

3 回答 3

5

正如错误消息所说,您应该使用ref关键字传递参数:

dt = DataInteraction.stdReturnDataTable("cit_ResolveUser", ref myParamList, "ParabisIntranet");

另外,根据您的评论,它是一个静态方法,您不能通过实例变量调用它。相反,您需要使用类型名来限定它。

但我怀疑这里实际上不需要 ref 关键字,您可能只需将其从方法签名中删除即可。

public static DataSet stdReturnDataset(string procedureName, 
                                       List<SqlParameter> myParameters, 
                                       string db)
于 2012-10-11T07:45:07.827 回答
1

您需要ref在方法调用中指定关键字。

dt = _DI.stdReturnDataTable("cit_ResolveUser", ref myParamList, "ParabisIntranet");
于 2012-10-11T07:45:12.233 回答
1

您需要 ref 关键字:

dt = _DI.stdReturnDataTable("cit_ResolveUser", ref myParamList, "ParabisIntranet");

于 2012-10-11T07:45:58.213 回答