-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

refkeywoardが必要です。

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

于 2012-10-11T07:45:58.213 に答える