可以删除数据,但运行提示"索引超出范围。必须为非负值并小于集合大小。参数名:index”,

singingting 2009-03-26 10:43:34
各位高手,帮忙看一下这段代码出了什么问题,运行的时候总是提示"索引超出范围。必须为非负值并小于集合大小。参数名:index”,,但是停止运行后查看数据库里面的记录已经被删除了,,而且主键也已经设置了,求高位高手大虾们帮看看,小妹在些谢过你们!!

执行删除的代码如下:

Protected Sub DataUs_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles DataUs.RowDeleting

Dim strconn As String = System.Configuration.ConfigurationManager.AppSettings("ConnString") ''数据库连接定义Config!
Dim conn As New SqlConnection(strconn)

Dim id As Integer
id = DataUs.DataKeys(e.RowIndex).Value.ToString()

Dim sql As String
sql = "delete from tbl_user where u_id =" & id
Dim com As New SqlCommand(sql, conn)

conn.Open()
com.ExecuteNonQuery()
Response.Write("<script>window.alert(""删除成功"");</script>")

conn.Close()
DataUs.DataKeyNames = New String() {"u_id"}
DataUs.DataBind()


End Sub
...全文
330 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
随智阔 2010-10-22
  • 打赏
  • 举报
回复
网上摘抄里一段.

"今天,发现了以前理解上的一个重大误区。(对datakeys那里产生的错误理解的更正)

在引用datakeys[]来取得主键之前,gridview要绑定数据源,则是有主键的数据源。否则会报错说index

过大。原因很简单,因为gridview 是个空表,没有任何的datakey.此时datakeys的长度为0.

http://hi.baidu.com/570851835/blog/item/4bfa5589860cac9ca4c27298.html"
singingting 2009-03-27
  • 打赏
  • 举报
回复
提示" id = DataUs.DataKeys(e.RowIndex).Value.ToString()"这一句的"索引超出范围。必须为非负值并小于集合大小。 参数名: index",不知该怎么办的呢,请各位在大哥大姐帮帮小妹~~
hecong875 2009-03-27
  • 打赏
  • 举报
回复
Dim id As Integer
id = DataUs.DataKeys(e.RowIndex).Value.ToString()

跟下e.RowIndex
dl_wang 2009-03-27
  • 打赏
  • 举报
回复
是不是这块出的错?
DataUs.DataKeyNames = New String() {"u_id"}
DataUs.DataBind()

我感觉是。设断点看看这两句有没有问题
kings2015 2009-03-27
  • 打赏
  • 举报
回复
主键没设置吧,好像有个datakey=“F_ID”
singingting 2009-03-27
  • 打赏
  • 举报
回复
怎么没有人回呢/各位高手大虾们支支招吧~~
指间、魔法师 2009-03-26
  • 打赏
  • 举报
回复
断点吧。。
一步步看 不要怕麻烦
Teng_s2000 2009-03-26
  • 打赏
  • 举报
回复
奇怪,index越界,应该是RowIndex的问题,但是你的还删除成功了...

设置个断点,看看哪儿出错了吧

太奇怪了啊

62,267

社区成员

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

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

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

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