C# 如何插入复选框和复选框的值?

C# 如何插入复选框和复选框的值?,c#,C#,如何插入复选框和复选框的值,并帮助我使用oledbreader将其读入checkbox1=checkbox1,依此类推和name=textbox谢谢 private void btnSave_Click(object sender, EventArgs e) { string n = ""; string n2 = ""; string n3 = ""; if (checkBox1.Checked == true) { n= "Baske

如何插入复选框和复选框的值,并帮助我使用oledbreader将其读入checkbox1=checkbox1,依此类推和name=textbox谢谢

private void btnSave_Click(object sender, EventArgs e)
{

    string n = "";
    string n2 = "";
    string n3 = "";
    if (checkBox1.Checked == true)
    {
        n= "Basketball";
    }
    if (checkBox2.Checked == true)
    {
        n2 = "Cooking";
    }
    if (checkBox3.Checked == true)
    {
        n2 = "Reading";
    }

    try
    {
        connection.Open();
        string query = "insert into RecordC ([Select], [Name]) values (@Select, @Name)";

        OleDbCommand command = new OleDbCommand(query, connection);

        command.Parameters.AddWithValue("@Select", checkBox1.Checked);
        command.Parameters.AddWithValue("@Select", checkBox2.Checked);
        command.Parameters.AddWithValue("@Select", checkBox3.Checked);
        command.Parameters.AddWithValue("@Name", n);
        command.Parameters.AddWithValue("@Name", n2);
        command.Parameters.AddWithValue("@Name", n3);


        command.ExecuteNonQuery();

        MessageBox.Show("Added Successfully!");
        connection.Close();
    }
    catch { }
}

您试图插入3条记录,因此您的查询应该是:

 string query = "insert into RecordC ([Select], [Name]) values (@Select1, @Name1),(@Select2, @Name2),(@Select3, @Name3)";

            OleDbCommand command = new OleDbCommand(query, connection);

            command.Parameters.AddWithValue("@Select1", checkBox1.Checked);
            command.Parameters.AddWithValue("@Select2", checkBox2.Checked);
            command.Parameters.AddWithValue("@Select3", checkBox3.Checked);
            command.Parameters.AddWithValue("@Name1", n);
            command.Parameters.AddWithValue("@Name2", n2);
            command.Parameters.AddWithValue("@Name3", n3);
编辑:

正如Steve所说,首先要处理捕获(不要吞咽任何异常,但最好记录它。此外,上面的语句可能在语法上是错误的(它基于SQL Server)。
在任何情况下,异常跟踪都将引导您完成更正查询的步骤。

您只有两个参数。不要将同一个参数添加三次。在此之前,请确定要存储和使用同一变量的值。
[Select]
[Name]
对于任何与数据库相关的内容来说都是糟糕的名称。您当前正在添加六个参数,而您只有两个。不清楚是否要插入3条记录。如果未选中其中一个复选框,该怎么办?我希望所有3条记录都进入我的数据库。如果未选中复选框,则将select=0和复选框名称记录到数据库中。然后我需要使用oledbReaderI读取记录。我非常确定语法对MS-Access无效。因为您有一个空的catch。删除它,您将看到错误。我使用您的代码,但在SQL语句
catch(Exception ex){MessageBox.Show(ex.Message,“error”结尾缺少分号(;)时出错,MessageBoxButtons.OK,MessageBoxIcon.Error);}
checkbox1的值和checbox1的checkstate save triplereadd this
catch(Exception ex){throw ex;}
并找出问题所在。没有问题或错误。但是checkbox1或
@Select的值和checkstate相同
&
@Name
第二个查询将有四个参数,最后一个查询将有六个参数。如果要重新使用cmd对象,则必须在运行查询后清除参数。
            command.Parameters.AddWithValue("@Select", checkBox1.Checked);
            command.Parameters.AddWithValue("@Name", n);
            command.ExecuteNonQuery();
            command.Parameters.AddWithValue("@Select", checkBox2.Checked);
            command.Parameters.AddWithValue("@Name", n2);
            command.ExecuteNonQuery();
            command.Parameters.AddWithValue("@Select", checkBox3.Checked);
            command.Parameters.AddWithValue("@Name", n3);
            command.ExecuteNonQuery();