提示出错:索引超出范围 。 datagrid怎么删除?

zwbwork 2004-11-21 03:59:58
public sqlserver as string
Sqlserver = "server=PTG07;database=OMS;uid=sa;pwd="
页面上有一个名为memberdata 的datagrid控件,给它加了编辑、删除按钮

Private Sub memberdata_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles memberdata.DeleteCommand
Dim delCommand As SqlClient.SqlCommand
Dim delStr As String
Dim conn As SqlClient.SqlConnection
conn = New SqlClient.SqlConnection(Sqlserver)
conn.open()

delStr = "Delete from customer Where customerid = @customerid"
'表customer有关键字段customerid

delCommand = New SqlClient.SqlCommand(delStr, conn)
delCommand.Parameters.Add(New SqlClient.SqlParameter("@customerid", SqlDbType.NVarChar, 50))

delCommand.Parameters.Item("@customerid").Value = memberdata.DataKeys.Item(e.Item.ItemIndex)
'运行到此提示出错:索引超出范围。必须为非负值并小于集合大小。参数名: index

delCommand.ExecuteReader()
memberdata.EditItemIndex = -1
BindMemberData() '显示数据
End Sub
问题:
1 为什么会出现“索引超出范围”这种错,我是照一本书上写的,错在哪里了?
2 这个程序怎么写我才能达到删除的目的?
3 怎么才能得到我点击的datagrid的某行某列的值?
...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fencunzhijian 2004-11-24
  • 打赏
  • 举报
回复
楼上的回答正确
brightheroes 2004-11-24
  • 打赏
  • 举报
回复
delCommand.Parameters.Item("@customerid").Value = memberdata.DataKeys.Item(e.Item.ItemIndex)

--->

delCommand.Parameters.Item("@customerid").Value = memberdata.DataKeys(e.Item.ItemIndex).ToString()
zhanggy1973 2004-11-24
  • 打赏
  • 举报
回复
是因为datagrid没设datafieldkey的值所致

62,041

社区成员

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

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

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

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