System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)操作,一再报未提供该参数 - ASP.NET(webform) - 狼子收集
首页蓝耳朵|小小蓝耳朵广州图书馆外文室英语儿童读物资源介绍网佛教青年之友旧版收集永硕E盘Phonics Short Vowels Game 
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)操作,一再报未提供该参数
所属栏目:ASP.NET(webform)  时间:2011-01-02 22:00  作者:狼子

记录,是因为这个错误太低级。。。

报这个错误的时候,我检查了很多次参数,我添加参数了,我一次一次检查,我就是添加了,就是,拼命出错,报说我未提供参数。。。

我以为是我的公共类出问题了,我把类里的方法复制到页面中,不用参数传递的办法,直接在页面里添加参数,就像下面的,检查,参数存在,就是,还是继续报错,说我未提供参数。。。

我花了好多时间,我检查了好久,最后,我想起来,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();
        }

 

小楼宝宝的涂鸦花花(Imitater)的博客起名称骨测字