使用复选框更新数据库
我有一个数据网格,每行都有一个复选框。 此外,每行中的每个字段都可以更新
用户可以更新多行并选中任何复选框。
点击SUBMIT按钮,应该更新所有数据。 我需要复选框来更新数据库中的布尔值(或者什么是bool类型用于sql server)。
- 如何实现复选框才能更新数据库中的表?
- 单击提交按钮如何获取所有要更新的数据?
浏览数据网格并将要更新的所有数据存储在数组等中。 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(); } }
这应该让你在特定的方向看。