【问题标题】: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..

标签: c# visual-studio-2010 sql-server-express


【解决方案1】:

你可以创建一个checkedlistboxmycheckedlist 然后使用

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 吗?喜欢小巧玲珑?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 2014-12-05
  • 2015-07-27
  • 1970-01-01
  • 2022-07-28
  • 1970-01-01
相关资源
最近更新 更多