其中procName是我要传递的存储过程名,myPar是存放存储过程需要的参数
具体内部怎样写?
我写的
public DataTable waitDao(string procName, SqlParameter[] myPar)
{ string ConnString = ConfigurationManager.AppSettings["StrCon"];
using (SqlConnection conn = new SqlConnection(ConnString))
{ DataSet ds = new DataSet();
try
{ conn.Open();
SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure;
if (myPar != null)
{
foreach (SqlParameter spar in myPar)
{ cmd.Parameters.Add(spar);
}
}
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{ throw new Exception(ex.Message);
}
return ds.Tables[0];
}
}但是显示错误:存储过程需要的参数没传进来
5 个解决方案
#1
up up up up up up up up up up
#2
up up up up up up up up up
#3
up up up up up up up
#4
检查参数个数,数据值设置
#5
参数个数和类型都要和数据库对应上。
SqlParameter[] sp = new SqlParameter[]
{
new SqlParameter("@parameterName1","value1"),
new SqlParameter("@parameterName2","value2"),
new SqlParameter("@parameterName3","value3"),
new SqlParameter("@parameterName4","value4")
};
#1
up up up up up up up up up up
#2
up up up up up up up up up
#3
up up up up up up up
#4
检查参数个数,数据值设置
#5
参数个数和类型都要和数据库对应上。
SqlParameter[] sp = new SqlParameter[]
{
new SqlParameter("@parameterName1","value1"),
new SqlParameter("@parameterName2","value2"),
new SqlParameter("@parameterName3","value3"),
new SqlParameter("@parameterName4","value4")
};