datagrid 中函数的问题
我用的是 access数据库
页面中一个 DataGrid 要删除其中一行值
删除函数为:
public void dagPro_Delet(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string deleteCmd="DELETE from project WHERE projectID=@id";
OleDbCommand myCommand = new OleDbCommand(deleteCmd,conn);
myCommand.Parameters.Add(new OleDbParameter("@id",OleDbType.VarChar,11));
myCommand.Parameters["@id"].Value = dagPro.DataKeys[(int)e.Item.ItemIndex];
myCommand.Connection.Open();
try
{
myCommand.ExecuteNonQuery();
Label2.Text ="以删除一个项目记录";
}
catch(OleDbException)
{
Label2.Text ="删除失败";
}
myCommand.Connection.Close();
BindGrid();
}
这里调用的是存储过程么?ACCESS数据库不能调用存储过程吧,在页面中点 “删除”的时候出错:
索引超出范围。必须为非负值并小于集合大小。参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。参数名: index
源错误:
行 138: OleDbCommand myCommand = new OleDbCommand(deleteCmd,conn);
行 139: myCommand.Parameters.Add(new OleDbParameter("@id",OleDbType.VarChar,11));
行 140: myCommand.Parameters["@id"].Value = dagPro.DataKeys[(int)e.Item.ItemIndex];
行 141:
行 142: myCommand.Connection.Open();