如何知道是不是选中了表单中的多个复选框并将值插入数据库表c#
Posted
技术标签:
【中文标题】如何知道是不是选中了表单中的多个复选框并将值插入数据库表c#【英文标题】:How to know if multiple checkbox in form is checked or not and insert the value in database table c#如何知道是否选中了表单中的多个复选框并将值插入数据库表c# 【发布时间】:2020-08-31 23:17:50 【问题描述】:我想为每个复选框在数据库表中插入值(如果选中则为 1,未选中则为 0)。
我把所有的复选框都放在一个分组框中。
我希望有一种方法可以通过循环来完成,因为我有很多复选框
SqlConnection conn = new SqlConnection(@"Data Source =.\SQLEXPRESS; Initial Catalog = sales_sys;
Integrated Security = True");
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = /* insert sql statement*/ ;
int x =0;
DataTable tbl = new DataTable();
tbl.Clear();
tbl.Columns.Add("value");
foreach (Control c in groupBox1.Controls)
if (c is CheckBox)
CheckBox cb = (CheckBox)c;
if (cb.Checked == false)
x = 0 ;
else
x = 1;
tbl.Rows.Add(1);
int index = tbl.rows.count - 1;
tbl.rows[index][0] = x;
conn.Open();
tb.Load(cmd.ExecuteReader());
conn.Close();
我想将日期插入数据库表中的一行,如下所示
(第一个数据表行 = 第二个数据库表列)
(第二个数据表行 = 第三个数据库表列)
(第三个数据表行 = 第四个数据库表列)
我确保表格的行数等于复选框的数量
以及如何对所有第一行列执行如下相反的过程。
如果表中的第二列是 1,则将第一个复选框更改为选中 如果表格中的第二列为 0,则将第一个复选框更改为未选中一直持续到列的末尾。
【问题讨论】:
您的复选框是否使用checkedlistbox
?
不..我在groubox
中使用普通checkbox
..如果这是最简单的方法,我可以将其更改为checklistbox
..
【参考方案1】:
你可以创建一个checkedlistbox
mycheckedlist 然后使用
private void savemychecks()
DataTable tbl = new DataTable();
tbl.Clear();
tbl.Columns.Add("value");
foreach (object item in mycheckedlist.Items)
if (mycheckedlist.CheckedItems.Contains(item))
tbl.Rows.Add("1");
else
tbl.Rows.Add("0");
这是因为我不知道您的数据库表中还有什么以及那里有哪些列,如果您将这些添加到您的问题中,我可以更新我的答案。
【讨论】:
谢谢.. 我的数据库表中每个复选框只包含一列 @AhmedMohammed 你在使用任何 ORM 吗?喜欢小巧玲珑?以上是关于如何知道是不是选中了表单中的多个复选框并将值插入数据库表c#的主要内容,如果未能解决你的问题,请参考以下文章