鸠之媚番外在线阅读:ASP.NET DataGrid 更新数据问题

来源:百度文库 编辑:高校问答 时间:2024/04/20 10:33:56
DataGrid 更新数据时出错,语句如下:

private void DataGrid1_UpdateCommand(object source, DataGridCommandEventArgs e)
{
string strCn = ConfigurationSettings.AppSettings["connstring"];
OleDbConnection Cn = new OleDbConnection(strCn);
string upSQL = "update UserTable set Pass=@Pass, where ID=@ID";
OleDbCommand upCmd = new OleDbCommand(upSQL,Cn);

upCmd.Parameters.Add("@ID",OleDbType.SmallInt,4);
upCmd.Parameters.Add("@Pass",OleDbType.VarChar,50);
upCmd.Parameters["@ID"].Value = DataGrid1.DataKeys[e.Item.ItemIndex];
upCmd.Parameters["@Pass"].Value = ((TextBox) e.Item.Cells[3].Controls[0]).Text;

try
{
Cn.Open();
upCmd.ExecuteNonQuery();
Cn.Close();
if(!Page.IsStartupScriptRegistered("upAlert"))
{
Page.RegisterStartupScript("upAlert",@"<script language='javascript'>alert('更新成功')</script>");
}
this.DataGrid1.EditItemIndex = -1;
BindGrid();
}
catch(Exception err)
{
Response.Write(err.Message);
}
finally
{
if(Cn.State == ConnectionState.Open)
{
Cn.Close();
}
}

出错语句:upCmd.Parameters["@ID"].Value = DataGrid1.DataKeys[e.Item.ItemIndex];
提示:索引超出范围。必须为非负值并小于集合大小。参数名: index
请问是哪里出错呢?

没有返回吧?

晚上我就告诉你现在上课老师不在哈`!