Asp.net radiobutton值未在Access db中输入

时间:2015-08-23 12:59:16

标签: c# asp.net

string menu = "";
        if (RadioButton3.Checked)
            menu = menu + " " + RadioButton3.Text;
        if (RadioButton4.Checked)
            menu = menu + " " + RadioButton4.Text;
        if (RadioButton5.Checked)
            menu = menu + " " + RadioButton5.Text;
        if (RadioButton6.Checked)
            menu = menu + " " + RadioButton6.Text;
        TextBox4.Text = menu;
 OleDbCommand cmd = new OleDbCommand("insert into bill(name,contact,address,order) values(@a1,@a2,@a3,@a4)", con);
        if (RadioButton1.Checked)
            cmd.Parameters.AddWithValue("a1", RadioButton1.Text+TextBox1.Text);
        else  if (RadioButton2.Checked)
            cmd.Parameters.AddWithValue("a1", RadioButton2.Text+TextBox1.Text);
        else cmd.Parameters.AddWithValue("a1", TextBox1.Text);
        cmd.Parameters.AddWithValue("a2", TextBox2.Text);
        cmd.Parameters.AddWithValue("a3", TextBox3.Text);
        cmd.Parameters.AddWithValue("a4", TextBox4.Text );
con.Open();
        cmd.ExecuteNonQuery();
        con.Close();

这是我的代码,第四个参数值没有添加到我的数据库中。另请注意,db列(顺序)中没有限制

1 个答案:

答案 0 :(得分:0)

您的查询应该抛出异常。由 ORDER 一词引起的Syntax Error例外。这是Access的保留关键字(可能对于地球上的每个其他数据库)。

如果您没有看到异常,那么有一个try catch处理程序,它不会显示此代码周围的错误消息。

在任何情况下,您都可以使用方括号将问题单词括起来解决问题

 OleDbCommand cmd = new OleDbCommand(@"insert into bill
                    (name,contact,address,[order]) 
                     values(@a1,@a2,@a3,@a4)", con);

并记住删除空的try catch或至少添加一条有意义的消息。