C# 根据网格视图中选中的复选框更新数据库列值
我想根据使用asp.net c在网格视图中选中的复选框更新数据库列值# 在下面的编码中,chbox显示空引用异常C# 根据网格视图中选中的复选框更新数据库列值,c#,asp.net,gridview,C#,Asp.net,Gridview,我想根据使用asp.net c在网格视图中选中的复选框更新数据库列值# 在下面的编码中,chbox显示空引用异常 foreach (GridViewRow rows in grdApproval.Rows) { if (Chbox.Checked) { int RoleID = Convert.ToInt32(ViewState["RoleID"].ToString()); int Ts
foreach (GridViewRow rows in grdApproval.Rows)
{
if (Chbox.Checked)
{
int RoleID = Convert.ToInt32(ViewState["RoleID"].ToString());
int TsId = Convert.ToInt32(hfTimesheetId.Value);
var Qry = (from m1 in TSEntity.Roles
where m1.RoleId == RoleID
select m1).FirstOrDefault();
if (Qry != null)
{
var QryEditTimesheet = (from m2 in TSEntity.TimeSheets
where m2.Id == TsId
select m2).FirstOrDefault();
if (QryEditTimesheet != null)
{
QryEditTimesheet.IsApproved = true;
QryEditTimesheet.ApprovedBy = ViewState["EmpName"].ToString();
QryEditTimesheet.ModifiedDate = DateTime.Now;
TSEntity.SaveChanges();
}
}
BindGrid();
}
else
{
BindGrid();
}
}
没有任何进一步的信息,我只能猜测 首先,我建议您将第一行更改为
foreach(GridViewRow row in grdApproval.Rows)
第二,你能试着把第二行改成
if(row.Columns["yourcheckboxcolumnnumber"].checked)
希望这能有所帮助。展示你的html代码以及你如何删除chbox我唯一能说的就是做一个
null
检查。你必须先找到你的复选框
,然后将它转换为复选框
行。FindControl(“你的复选框id”)现在它开始工作了,感谢Bhradwaj也可能存在复选框控件。那你的第二行就不行了。