System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)操作,一再报未提供该参数
记录,是因为这个错误太低级。。。
报这个错误的时候,我检查了很多次参数,我添加参数了,我一次一次检查,我就是添加了,就是,拼命出错,报说我未提供参数。。。
我以为是我的公共类出问题了,我把类里的方法复制到页面中,不用参数传递的办法,直接在页面里添加参数,就像下面的,检查,参数存在,就是,还是继续报错,说我未提供参数。。。
我花了好多时间,我检查了好久,最后,我想起来,CommandType默认是Text,我执行的是存储过程,就是红色粗体那一句,问题就出在这里。。。
using (SqlConnection dbConnect = new SqlConnection(NnllData.dbConnectionString))
{
dbConnect.Open();
using (SqlCommand dbCommand = new SqlCommand("Category_RightList", dbConnect))
{
using (DataSet ds = new DataSet())
{
ds.Locale = System.Globalization.CultureInfo.InvariantCulture;
try
{
using (SqlDataAdapter da = new SqlDataAdapter())
{
dbCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand = dbCommand;
da.SelectCommand.Parameters.Add(new SqlParameter("@CategoryID", Request.QueryString["id"]));
Response.Write("<br>" + da.GetFillParameters()[0].ParameterName + " = " + da.GetFillParameters()[0].Value.ToString());
da.Fill(ds);
dtArray[0] = ds.Tables[0];
dtArray[1] = ds.Tables[1];
}
}
catch (SqlException ex)
{
Response.Write("<br>" + ex.Message + "<br>" + ex.StackTrace);
dtArray = null;
}
}
}
dbConnect.Close();
}