我试图更新基于我的数据库中的列或不在GridView中检查复选框。此更新仅在button_click后发生。问题可能是我的语法,所以如果有人能纠正我,那将非常感激。根据复选框的值更新列
看到这里我的代码:
protected void ButtonAfTeHalen_Click(object sender, EventArgs e)
{
foreach (GridViewRow r in GridViewOrders.Rows)
{
if (((CheckBox)r.Cells[0].FindControl("CheckBoxATH")).Checked == true
&& (Label)r.Cells[3].FindControl("LabelOrderID") != null)
{
string conn2 = "Data Source=pc-...";
CheckBox checkBoxATH = (CheckBox)GridViewOrders.FindControl("CheckBoxATH");
Label orderID = (Label)r.Cells[3].FindControl("LabelOrderID");
LabelTestID.Visible = true;
LabelTestID.Text = orderID.Text.ToString();
System.Data.SqlClient.SqlConnection sqlConn10 = new System.Data.SqlClient.SqlConnection(conn2);
sqlConn10.Open();
System.Data.SqlClient.SqlCommand updateCommand =
new System.Data.SqlClient.SqlCommand("UPDATE tblOrders SET Status= " + checkBoxATH.Checked + " WHERE [email protected]", sqlConn10);
updateCommand.Parameters.AddWithValue("@orderID", LabelTestID.Text);
updateCommand.ExecuteNonQuery();
}
}
}
错误说:对象引用不设置到对象的实例。
错误@更新语句。但它确实在标签上显示订单的ID。只有gridview中最低检查顺序的ID tho,不是所有选定的ID。
Regards Mati
检查空的checkBoxATH,订单ID以及您是否在找control.And提供有效的值也告诉我们行你得到这个错误。 – varadarajan 2011-04-14 08:24:24
看来你并没有使用'GridViewRow r'变量。 – jfs 2011-04-14 08:25:52
@jfs:true,if if(((CheckBox)r.Cells [0] .FindControl(“CheckBoxATH”))。Checked == true) {}'在我的代码中,问题依然存在。 Still Object not set to ... – Dieter 2011-04-14 08:33:17