为什么我得到“没有重载方法需要两个参数”?

时间:2013-09-27 04:30:22

标签: c# asp.net ado.net

我在一个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);
     }

在这里,我收到了这个错误:

  

方法没有重载需要两个参数。

我做错了什么?

3 个答案:

答案 0 :(得分:1)

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




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

答案 1 :(得分:0)

您期待

中的3个参数
`public static DataSet ExecuteDataset(string strcommandText,CommandType commandType,SqlParameter[] p)`
 method.

但是在调用此方法时只发送两个参数

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

因此,当您通过仅传递两个参数Sqlhelper对象来查找具有相同名称的另一个方法来调用同一方法时,该方法会导致此错误。

您可以通过传递第三个参数来解决问题,或者只是默认将第三个参数设置为null。

答案 2 :(得分:0)

感谢回复Guys ..在上面的程序中我们可以在ExecuteDataset中给出sqlhelper类的方法参数作为可选参数,或者我们可以给出默认参数。所以sqlparamter传递对其他方法不是强制性的,我们只能在需要时传递。