gridview控件的deleting事件怎么写

huangwenjun2012 2011-04-21 03:53:22
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{

string sqlstr = "delete from student where ID='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
strconn = ConfigurationSettings.AppSettings["dsn"];
con = new SqlConnection(strconn);
con.Open();
cmd = new SqlCommand(sqlstr , con);

cmd.ExecuteNonQuery();
con.Close();
bind();
}

public void bind()
{
string sqlstr = "select ID,name,sfz,sex,class,grade,department from student";
strconn = ConfigurationSettings.AppSettings["dsn"];
con = new SqlConnection(strconn);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, con);
DataSet myds = new DataSet();
con.Open();
myda.Fill(myds, "student");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "ID" };//主键
GridView1.DataBind();
con.Close();
}
索引超出范围。必须为非负值并小于集合大小。
参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index

源错误:


行 126: {
行 127:
行 128: string sqlstr = "delete from student where ID='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
行 129: strconn = ConfigurationSettings.AppSettings["dsn"];
行 130: con = new SqlConnection(strconn);

...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangwenjun2012 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ysh19900504 的回复:]
DataKey应怎么绑定值???
[/Quote]
DataKey应怎么绑定值???
huangwenjun2012 2011-04-22
  • 打赏
  • 举报
回复
我是菜鸟,GridView1.DataKeys[e.RowIndex].Value.ToString() ,不就是获取相应行的主键信息吗
jshazhang 2011-04-21
  • 打赏
  • 举报
回复
你确定GridView1.DataKeys[e.RowIndex].Value.ToString() 有值吗?
yuxianye1 2011-04-21
  • 打赏
  • 举报
回复
GridView1.DataKeys[e.RowIndex].Value.ToString()
易圣 2011-04-21
  • 打赏
  • 举报
回复
DataKey你有绑定值没啊???

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧