索引超出范围.必须为非负值并小于集合大小. 10
{
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;
}
查询完结果直接更新他告诉我索引超出范围.必须为非负值并小于集合大小.。求指导 展开
这个异常在代码不规范的情况下很容易出现,数组是有索引的。报这个错误肯是索引超了,比如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
造成这样的原因1:就是你指定的索引超出了范围,比如你一共才5列,你指定了索引为5就超出范围了,要指定4才行,因为索引是从0开始计算的。
第二点:就是你指定的列名可能错误,所以找不到的情况下也会提示索引超出范围。
比如你通过键来查找,数组.列集合["键名"],如果你指定的这个键名不存可能也会报这个错。
总之你自己检查下,看看你的表里一共有几列,当然隐藏的列也要算进去的。
请采纳。
是否有取数组内值的代码,然后数组的size是否小于和你要取的下标。