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

  1. public void DataList_UpdateCommand(Object sender, DataListCommandEventArgs e)  
  2.  {  
  3.      string strName = ((Label)e.Item.FindControl("lblName")).Text;  
  4.      int intChinese = Int32.Parse(((TextBox)e.Item.FindControl("tbChinese")).Text);  
  5.      int intMath = Int32.Parse(((TextBox)e.Item.FindControl("tbMath")).Text);  
  6.      int intEnglish = Int32.Parse(((TextBox)e.Item.FindControl("tbEnglish")).Text);  
  7.      //更新数据库中的数据  
  8.      string strUpdate = "Update Score Set Chinese=@intChinese,Math=@intMath,English=@intEnglish Where Name=@strName";  
  9.      SqlParameter[] paras = new SqlParameter[10];  
  10.      paras[0] = new SqlParameter("@strName", SqlDbType.VarChar);  
  11.      paras[0].Value = strName;  
  12.   
  13.      paras[1] = new SqlParameter("@intChinese", SqlDbType.Int);  
  14.      paras[1].Value = intChinese;  
  15.   
  16.      paras[2] = new SqlParameter("@intMath", SqlDbType.Int);  
  17.      paras[2].Value = intMath;  
  18.   
  19.      paras[3] = new SqlParameter("@intEnglish", SqlDbType.Int);  
  20.      paras[3].Value = intEnglish;  
  21.   
  22.      bool temp = NewsDB.Getcmd(strUpdate, paras);  
  23.      score.EditItemIndex = -1;  
  24.      ListBind();  
  25.  }  

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

后来将

  1. SqlParameter[] paras = new SqlParameter[10];  

改成

  1. SqlParameter[] paras = new SqlParameter[4];  

以后解决错误。

  1. SqlParameter[] paras = new SqlParameter[10];  

是我从别的地方拷贝过来的,而不是自己写的。现在越来越发现拷贝代码虽然快,但是往往存在许多连自己都不易发现的错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值