C# 如何插入复选框和复选框的值?
如何插入复选框和复选框的值,并帮助我使用oledbreader将其读入checkbox1=checkbox1,依此类推和name=textbox谢谢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
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 thiscatch(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();