Asp.net 使用存储过程从gridview中删除一行

Asp.net 使用存储过程从gridview中删除一行,asp.net,gridview,rowdatabound,Asp.net,Gridview,Rowdatabound,我是Asp.net的新手。我希望在单击网格上的链接按钮后删除gridview行。我正在尝试使用datakeys获取我单击的gridview行的主键,并将其传递给Delete存储过程。但我得到一个索引超出范围的例外。请帮帮我怎么做? 这是我的密码 GridView grid=(GridView)sender; LinkButton lnkbtndelete = (LinkButton)e.CommandSource; GridViewRow grdvwrw = (GridViewRow)lnkbt

我是Asp.net的新手。我希望在单击网格上的链接按钮后删除gridview行。我正在尝试使用datakeys获取我单击的gridview行的主键,并将其传递给Delete存储过程。但我得到一个索引超出范围的例外。请帮帮我怎么做? 这是我的密码

GridView grid=(GridView)sender;
LinkButton lnkbtndelete = (LinkButton)e.CommandSource;
GridViewRow grdvwrw = (GridViewRow)lnkbtndelete.NamingContainer;
int pkey = Convert.ToInt32(grid.DataKeys[grdvwrw.RowIndex].Value.ToString());
SqlCommand cmd3 = new SqlCommand("USP_DELETE_NOTICE", con2);
cmd3.CommandType = CommandType.StoredProcedure;
cmd3.Parameters.AddWithValue("@NOTICEID", pkey);
int rowsdeleted = cmd3.ExecuteNonQuery();`enter code here`

如果要在page_load中绑定网格,请确保将该代码包装在If(!IsPostBack)块中。我已经这样做了。。那不是我的问题。。我需要使用datakey获取主键