您的位置:首页 > 数据库

解决异常“SqlParameterCollection 只接受非空的 SqlParameter 类型对象。”

2015-11-02 22:31 405 查看
public void DataList_UpdateCommand(Object sender, DataListCommandEventArgs e)  

 {  

     string strName = ((Label)e.Item.FindControl("lblName")).Text;  

     int intChinese = Int32.Parse(((TextBox)e.Item.FindControl("tbChinese")).Text);  

     int intMath = Int32.Parse(((TextBox)e.Item.FindControl("tbMath")).Text);  

     int intEnglish = Int32.Parse(((TextBox)e.Item.FindControl("tbEnglish")).Text);  

     //更新数据库中的数据  

     string strUpdate = "Update Score Set Chinese=@intChinese,Math=@intMath,English=@intEnglish Where Name=@strName";  

     SqlParameter[] paras = new SqlParameter[10];  

     paras[0] = new SqlParameter("@strName", SqlDbType.VarChar);  

     paras[0].Value = strName;  

  

     paras[1] = new SqlParameter("@intChinese", SqlDbType.Int);  

     paras[1].Value = intChinese;  

  

     paras[2] = new SqlParameter("@intMath", SqlDbType.Int);  

     paras[2].Value = intMath;  

  

     paras[3] = new SqlParameter("@intEnglish", SqlDbType.Int);  

     paras[3].Value = intEnglish;  

  

     bool temp = NewsDB.Getcmd(strUpdate, paras);  

     score.EditItemIndex = -1;  

     ListBind();  

 }  

一直报错“SqlParameterCollection 只接受非空的 SqlParameter 类型对象”。

后来将

SqlParameter[] paras = new SqlParameter[10];  

改成

SqlParameter[] paras = new SqlParameter[4];  

以后解决错误。

SqlParameter[] paras = new SqlParameter[10];  

是我从别的地方拷贝过来的,而不是自己写的。现在越来越发现拷贝代码虽然快,但是往往存在许多连自己都不易发现的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: