在DataGrid中更新数据的问题
迷失在太空 2006-10-31 02:37:10 我在一个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();
}