我在一个Datagrid中设置了编辑,更新,取消按钮,点击编辑后进入编辑界面,更新一些字段的值后,点击更新按钮,总提示“Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index ”可是程序是我在家里测试好的,没有任何问题,当把相关DataGrid1_UpdateCommand代码拷贝到公司机器后就出现这个问题,请指教,我的更新按钮源代码如下:
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
String key = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
String sqlUpdate = "update tblCustomer set name=@name,company=@company,address=@address,phone=@phone where id=@id";
sqlConnection1.Open();
SqlCommand sqlCommand = new SqlCommand(sqlUpdate,sqlConnection1);
sqlCommand.Parameters.Add("@id",key);
sqlCommand.Parameters.Add("@name",((TextBox)(e.Item.Cells[3].Controls[0])).Text);
sqlCommand.Parameters.Add("@company",((TextBox)(e.Item.Cells[5].Controls[0])).Text);
sqlCommand.Parameters.Add("@address",((TextBox)(e.Item.Cells[6].Controls[0])).Text);
sqlCommand.Parameters.Add("@phone",((TextBox)(e.Item.Cells[7].Controls[0])).Text);
sqlCommand.ExecuteNonQuery();
sqlConnection1.Close();
DataGrid1.EditItemIndex=-1;
String id,name;
id = TextBox1.Text;
name = TextBox2.Text;
sqlConnection1.Open();
sqlDataAdapter1.SelectCommand.Parameters["@id"].Value=id;
sqlDataAdapter1.SelectCommand.Parameters["@name"].Value=name;
sqlDataAdapter1.SelectCommand.ExecuteNonQuery();
sqlDataAdapter1.Fill(dsTest1,"tblCustomer");
DataGrid1.DataBind();
}
private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
String key = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
String sqlUpdate = "update tblCustomer set name=@name,company=@company,address=@address,phone=@phone where id=@id";
sqlConnection1.Open();
SqlCommand sqlCommand = new SqlCommand(sqlUpdate,sqlConnection1);
sqlCommand.Parameters.Add("@id",key);
sqlCommand.Parameters.Add("@name",((TextBox)(e.Item.Cells[3].Controls[0])).Text);
sqlCommand.Parameters.Add("@company",((TextBox)(e.Item.Cells[5].Controls[0])).Text);
sqlCommand.Parameters.Add("@address",((TextBox)(e.Item.Cells[6].Controls[0])).Text);
sqlCommand.Parameters.Add("@phone",((TextBox)(e.Item.Cells[7].Controls[0])).Text);
sqlCommand.ExecuteNonQuery();
sqlConnection1.Close();
DataGrid1.EditItemIndex=-1;
String id,name;
id = TextBox1.Text;
name = TextBox2.Text;
sqlConnection1.Open();
sqlDataAdapter1.SelectCommand.Parameters["@id"].Value=id;
sqlDataAdapter1.SelectCommand.Parameters["@name"].Value=name;
sqlDataAdapter1.SelectCommand.ExecuteNonQuery();
sqlDataAdapter1.Fill(dsTest1,"tblCustomer");
DataGrid1.DataBind();
}
解决方案 »
- 见过的无比奇怪的问题 求解释 AxDSOFramer控件中嵌入的excel 另存为后居然……
- 请问XML的博大精深在于什么?
- 快速把ListView数据导出至EXCEL 别拿复制过的代码发
- 这段代码获得的CPU序列号重装系统后会变吗?
- 想请教一个数据表查询格式问题
- 菜鸟问一个关于ASP.NET链接ORACLE的问题。。。
- C# 关于读取文件的问题?各位老师请帮忙
- datagrid中点编辑后dropdownlist怎么绑定
- 在win98下面,如何运行.NET Framework 1.1 编写的C#程序
- 请问资源在另一个dll中,并且引入到当前程序集,怎么取出来
- 高手帮忙:如何在服务器获取客户端用户登录后保存在session中的用户信息!
- windows高级内核调试PPT资料下载
e.Item.Cells[3]
是否有效
Index超范圍了,家里單位數據源不同造成的吧,調試下看看!