请教:有关DataGrid的一个小问题

xiaotu982 2003-10-09 12:49:08
我定义了一个EditCommandColumn,UpdateCommand事件的代码如下

TextBox txid=(TextBox) e.Item.Cells[3].Controls[0];
string updatestr="update grade_elective set 成绩=@grade where keyword=@id"; //keyword 已设成grade_elective表的主键
SqlCommand comm=new SqlCommand(updatestr,conn); //conn为连接对象
comm.Parameters.Add(new SqlParameter("@grade",SqlDbType.Char,10));
comm.Parameters["@grade"].Value=txid.Text;
comm.Parameters.Add(new SqlParameter("@id",SqlDbType.Char,19));
comm.Parameters["@id"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
//执行到此时出错"索引超出范围。必须为非负值并小于集合大小。参数名:index
"
//说明:我的表里所有记录的主键一定有值,所以不说为何会出现上面的错误,请大虾指点一下,谢谢!
...全文
69 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
smarttu 2003-10-09
  • 打赏
  • 举报
回复
DataGrid1.DataKeyField中没有定义
hbzh1014 2003-10-09
  • 打赏
  • 举报
回复
错误行有某个数组的下标小于0
yuanylong 2003-10-09
  • 打赏
  • 举报
回复
检查一下这句:comm.Parameters["@id"].Value=DataGrid1.DataKeys[e.Item.ItemIndex];
尤其是e.Item.ItemIndex这个参数。
我认为你的DataGrid1.DataKeys[e.Item.ItemIndex];没有得到你想要的ID值。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧