C# "索引超出范围。必须为非负值并小于集合大小"
为什么在这句“stringsqlstr="deletefromxkjstjwhereid='"+GridView1.DataKeys[i].Value+"'";”中会提示...
为什么在这句“string sqlstr = "delete from xkjstj where id='" + GridView1.DataKeys[i].Value + "'";”中会提示“索引超出范围。必须为非负值并小于集合大小”。
有点看不明白是什么意思“GridView1.DataKeys有1个,你i>0了,就不行。
GridView1.DataKeys有2个,你i>1了,就不行。
GridView1.DataKeys有3个,你i>2了,就不行。”拜托能说得详细点吗? 展开
有点看不明白是什么意思“GridView1.DataKeys有1个,你i>0了,就不行。
GridView1.DataKeys有2个,你i>1了,就不行。
GridView1.DataKeys有3个,你i>2了,就不行。”拜托能说得详细点吗? 展开
5个回答
展开全部
首先看看你的i的值是多少?
GridView1.DataKeys是一个集合对象,不会为null,只是里面没有数据。当没有数据时,Count就为0。如果这时使用GridView1.DataKeys[i].Value取值将会出现这个提示。
尝试换一种方式去取值吧。我都没有怎么用过DataKeys属性
补充:最简单的说,你的DataKeys属性中没有指定数量的元素。例如你集合中有1个元素,当你用下标1取就会出这个错误。因为集合中第一个元素的下标是0
GridView1.DataKeys是一个集合对象,不会为null,只是里面没有数据。当没有数据时,Count就为0。如果这时使用GridView1.DataKeys[i].Value取值将会出现这个提示。
尝试换一种方式去取值吧。我都没有怎么用过DataKeys属性
补充:最简单的说,你的DataKeys属性中没有指定数量的元素。例如你集合中有1个元素,当你用下标1取就会出这个错误。因为集合中第一个元素的下标是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如
你的GridView1.DataKeys有1个,你i>0了,就不行。
你的GridView1.DataKeys有2个,你i>1了,就不行。
你的GridView1.DataKeys有3个,你i>2了,就不行。
-----------------------------------------
这个i应该是行索引。。比如GrieView1有5行,你的i只能是0到4,你肯定是超出这个范围了,才报错的。
你的GridView1.DataKeys有1个,你i>0了,就不行。
你的GridView1.DataKeys有2个,你i>1了,就不行。
你的GridView1.DataKeys有3个,你i>2了,就不行。
-----------------------------------------
这个i应该是行索引。。比如GrieView1有5行,你的i只能是0到4,你肯定是超出这个范围了,才报错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DataKeys[i]中的i超过了范围
可能的原因是Gridview1的Datakeys没有值,为null,建议你跟踪i,单步执行下
可能的原因是Gridview1的Datakeys没有值,为null,建议你跟踪i,单步执行下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取当前行的关键字是这样的:
string str_1 = GridView2.DataKeys[e.RowIndex].Values[0].ToString();
用之前还要设置:
GridView主键的设置:
GridView1.DataKeyNames = new string[] { "Jinchu_Time" };
GridView1.DataBind();
去其当前编辑行的第三个单元格的值是这样的:
string str_2 = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();//取得文本框中输入的内容
string str_1 = GridView2.DataKeys[e.RowIndex].Values[0].ToString();
用之前还要设置:
GridView主键的设置:
GridView1.DataKeyNames = new string[] { "Jinchu_Time" };
GridView1.DataBind();
去其当前编辑行的第三个单元格的值是这样的:
string str_2 = ((TextBox)(GridView2.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim();//取得文本框中输入的内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询