GRIDVIEW的 INDEX问题,疑惑中
表结构为:物资代码(主键),序号,物资名称型号(主键),规格(主键)
代码+序号可以确定行的唯一性,代码+型号+规格也可以确定行的唯一性
GIRDVIEW DATAKEYS设定为:物资代码,物资序号
在GRIDVIEW进行数据更新时,报错:
"指定的参数已超出有效值的范围。参数名: index"
应该是未取得Index值的问题,却不知道错在哪儿。请各位指点迷津。
更新代码如下:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//UltraGridRow oldrow = (UltraGridRow)e.Data;
if (e.RowIndex > -1)
{
string sqlupdate = "update XTXHGG SET 物资代码='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() +"',物资规格='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() +"' WHERE 物资代码='" + GridView1.DataKeys[e.RowIndex]["物资代码"].ToString() + "' and 序号='" + GridView1.DataKeys[e.RowIndex]["型规序号"].ToString() + "'";
SqlCommand sqlcom = new SqlCommand(sqlupdate, conn);
conn.Open();
sqlcom.ExecuteNonQuery();
conn.Close();
GridView1.EditIndex = -1;
BindList();
}
}