使用复选框更新数据库

我有一个数据网格,每行都有一个复选框。 此外,每行中的每个字段都可以更新

用户可以更新多行并选中任何复选框。

点击SUBMIT按钮,应该更新所有数据。 我需要复选框来更新数据库中的布尔值(或者什么是bool类型用于sql server)。

  1. 如何实现复选框才能更新数据库中的表?
  2. 单击提交按钮如何获取所有要更新的数据?

浏览数据网格并将要更新的所有数据存储在数组等中。 Sql server有一个bit数据类型,如果复选框关闭则可以将其设置为0如果选中它则可以设置为1 。 收集完所有数据后,将其传递到数据层以进行sql更新

您可以使用DataGrid对象迭代其单元格/控件。 例如,使用嵌套循环,您可以执行以下操作:

 myDG.Items[index1].Cells[index2].Controls[0] 

编辑 :这取决于您在列中的输入控件,因为您必须强制转换它们。 假设你有一个包含10列的数据网格,除了最后一个列之外的所有列都有TextBox,也就是CheckBox,你可以这样做:

 CheckBox cb = null; TextBox tb = null; List myList = new List(); for(int row = 0; row < myDG.Items.Count; row++) { for(int col = 0; col < myDG.Columns.Count; col++) { if(col < 9){ tb = myDG.Items[row].Cells[col].Controls[0] as TextBox; myList.Add(tb.Text); } else{ cb = myDG.Items[row].Cells[col].Controls[0] as CheckBox; myList.Add(((cb.Checked) ? "1" : "0")); } } } 

如果您也想要,可以使用2D数组/列表进行存储。 HTH

如果您使用的是GridView,那么基于您之前的示例中的示例,您可以执行此操作。 **这是半伪代码,请注意**

     <%-- This is itemtemplate so they are visible by default --%>             

代码背后处理这个

 public void btSubmit_Click(object sender, EventArgs e) { foreach (GridViewRow row in CustomersGridView.Rows) { CheckBox cbVerify = (CheckBox)row.FindControl("cbVerify"); HiddenField hidID = (HiddenField)row.FindControl("hidID"); // Do your validation of the data here .. if (cbVerify != null) { // Add fields and update sqlRecord.UpdateParameters["ID"].DefaultValue = hidID.Value; sqlRecord.UpdateParameters["Valid"].DefaultValue = cbVerify.Checked.ToString(); sqlRecord.Update(); } } 

这应该让你在特定的方向看。