我在一个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);
}
在这里,我收到了这个错误:
方法没有重载需要两个参数。
我做错了什么?
答案 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传递对其他方法不是强制性的,我们只能在需要时传递。