索引超出范围.必须为非负值并小于集合大小. 10

protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse){stringstrSQ... protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string strSQL;
SqlConnection conn;
strSQL = 、、
conn = new SqlConnection(strSQL);
conn.Open();
string sqlstr = "update customer set name='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',phone='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',mobile='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "',address='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "',kaishi='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim() + "',jieshu='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
SqlCommand cd = new SqlCommand(strSQL, conn);
SqlDataReader dr = cd.ExecuteReader();
GridView1.DataSource = dr;
GridView1.DataBind(); //设置GridView控件数据源,绑定到GridView控件
GridView1.EditIndex = -1;

}
查询完结果直接更新他告诉我索引超出范围.必须为非负值并小于集合大小.。求指导
展开
 我来答
帐号已注销
2019-12-31 · TA获得超过77.1万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:167万
展开全部

这个异常在代码不规范的情况下很容易出现,数组是有索引的。报这个错误肯是索引超了,比如list的count是5,也就是0-4,而去list,这样就超出了list的索引范围。

如 int[] array = new int[] {1,2,3,} ;代码写一个int result = arra[4];肯定就超出索引范围了。

Stack Trace:

在 System.Collections.CollectionBase.System.Collections.IList.get_Item(Int32 index)

在 Crownwood.Magic.Collections.TabPageCollection.get_Item(Int32 index)

在 Crownwood.Magic.Controls.TabControl.RecalculateSinglelineTabs(Int32 xWidth, Int32 xStartPos, Rectangle tabPosition)

扩展资料:

boolean add(E o)

将指定的元素追加到此 List 的尾部(可选操作)。

void add(int index,E element)

在此列表中指定的位置插入指定的元素(可选操作)。

boolean addAll(int index,Collection<? extends E> c)

void clear()

从此 collection 中移除所有元素(可选操作)。

boolean equals(Object o)

将指定的对象与此列表进行相等性比较。

abstractE get(int index)

返回此列表中指定位置处的元素。

int hashCode()

返回此列表的哈希代码值。

参考资料来源:百度百科-AbstractList

魅1014i650
推荐于2017-05-23 · TA获得超过186个赞
知道答主
回答量:133
采纳率:0%
帮助的人:70.6万
展开全部
你代码也没贴出来,很难说的清楚,我帮你说下造成的原因,然后你自己仔细检查。
造成这样的原因1:就是你指定的索引超出了范围,比如你一共才5列,你指定了索引为5就超出范围了,要指定4才行,因为索引是从0开始计算的。
第二点:就是你指定的列名可能错误,所以找不到的情况下也会提示索引超出范围。
比如你通过键来查找,数组.列集合["键名"],如果你指定的这个键名不存可能也会报这个错。
总之你自己检查下,看看你的表里一共有几列,当然隐藏的列也要算进去的。
请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heizhenpeng
2010-06-10 · TA获得超过899个赞
知道小有建树答主
回答量:955
采纳率:0%
帮助的人:1074万
展开全部
请检查E:\CRM1\CRM\PInfoManage\frmBInfoManage.cs:行号 108
是否有取数组内值的代码,然后数组的size是否小于和你要取的下标。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式