当我关闭在ASP.NET中使用GridView的弹出窗口时,更新我的数据库
本文关键字:窗口 数据库 我的 更新 GridView ASP NET | 更新日期: 2023-09-27 17:59:21
我是ASP.NET
和C#
的新手。
我想根据在GridView中选择的行来更新我的数据库。
此GridView用于弹出窗口(另一个ASPX页面)。
我的弹出窗口后面的代码如下:
protected void gvDetails_RowDataBound(object sender, GridViewRowEventArgs e)
{
string selectedID;
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridViewRow gvr = e.Row;
selectedID = (gvDetails.DataKeys[e.Row.RowIndex].Value.ToString());
Session["IDs"] = selectedID;
conn.Open();
System.Data.SqlClient.SqlCommand cmdUpdateSelectedRow = new System.Data.SqlClient.SqlCommand("Update myTable Set Selected = " + 1 +
" WHERE Id = " + Convert.ToInt32(Session["IDs"]) + "", conn);
cmdUpdateSelectedRow.ExecuteNonQuery();
conn.Close();
gvr.Attributes.Add("OnClick", "javascript:window.close()");//i deleted the id=
}
}
然而,我的数据库从未更新过。
RowDataBound
方法中的代码是在用户选择行之前还是之后运行的?
如有任何建议,我们将不胜感激。
在SelectedIndexChanged事件中,获取当前所选行:
GridViewRow row = gvDetails.SelectedRow;
然后,更新您的数据库
System.Data.SqlClient.SqlCommand cmdUpdateSelectedRow = new System.Data.SqlClient.SqlCommand("Update myTable Set Selected = " + row.Cells[0].Text +
" WHERE Id = " + Convert.ToInt32(Session["IDs"]) + "", conn);
从行的第一列获取数据的关键是:行。单元格[0]。文本