1

1 つの DLL にメソッドがあります。

public static DataSet ExecuteDataset(string strcommandText,CommandType commandType,SqlParameter[] p)
 {
   CreateConnection();
   da = new SqlDataAdapter(strcommandText, con);
   da.SelectCommand.CommandType = commandType;
   da.SelectCommand.Parameters.AddRange(p);
   ds = new DataSet();
   da.Fill(ds);
   return ds;
 }    

そして、別の DLL でメソッドを作成しました。

   public static DataSet GetDeptDetails()
    {
    string strcommandText = "sp_DeptDetails";
    return SqlHelper.ExecuteDataset(strcommandText,CommandType.StoredProcedure);
     }

ここで、次のエラーが発生します。

メソッドのオーバーロードは 2 つの引数を取りません。

私は何を間違っていますか?

4

3 に答える 3

0

あなたは3つのパラメータを期待しています

`public static DataSet ExecuteDataset(string strcommandText,CommandType commandType,SqlParameter[] p)`
 method.

ただし、このメソッドを呼び出すときに2つのパラメーターのみを送信します

return SqlHelper.ExecuteDataset(strcommandText,CommandType.StoredProcedure);

そのため、 2 つのパラメーターのみを渡して同じメソッドを呼び出すとSqlhelper、このエラーの原因となる 2 つのパラメーターを持つ同じ名前の別のメソッドを探します。

3 番目のパラメーターを渡すか、デフォルトで 3 番目のパラメーターを単に null に設定することで問題を解決できます。

于 2013-09-27T04:57:30.870 に答える