private void buttonX1_Click(object sender, EventArgs e)
        {
            string state = string.Empty;
            if (this.radioButton1.Checked == true)
            {
                state = "1";
            }
            else if (this.radioButton2.Checked == true)
            {
                state = "0";
            }
            else
            {
                MessageBox.Show("请选择一个开关");
                return;
            }
            int rs = 0;
            string sql = string.Format("insert into MyTable (Id,PARA_TYPE,PARA_NAME,PARA_STATES,NOTE) values ('{0}','2','{1}','{2}','{3}')",textBoxX1.Text,textBoxX2.Text,state,textBoxX3.Text);
            OleDbConnection connection = new OleDbConnection(strcon);
            OleDbCommand cmd = new OleDbCommand(sql, connection);
            connection.Open();
            rs = cmd.ExecuteNonQuery();
            connection.Close();
            if (rs == 1)
            {
                MessageBox.Show("成功");
            }
            else
            {
                MessageBox.Show("失败");
            }
            
        }
提示insert 语法有错误

解决方案 »

  1.   

    MyTable(Id)是自动生成的话不允许手动insert.
      

  2.   

    string sql = string.Format("insert into MyTable (Id,PARA_TYPE,PARA_NAME,PARA_STATES,NOTE) values ('{0}','2','{1}','{2}','{3}')",textBoxX1.Text,textBoxX2.Text,state,textBoxX3.Text);红色部分字段有5个字段,要求穿5个参数蓝色部分,你确只传了4个参数
      

  3.   

    提示:INSERT INTO 语句的语法错误。
    没有自增列  所有列都是字符型(Access)
      

  4.   

    跟程序调试一边   把sql语句赋值取出来   在access里执行一下   问题差不多救出来了
      

  5.   

    调试下,把sql取出来,粘贴到sql Server management studio里面执行一下看看呗!
      

  6.   

    只要求4个参数  values后第二个是值'2'  不是参数
      

  7.   

    Access  基本没用过。蛋疼。 
      

  8.   

    我也是  单位要求用Access 越简单的我越用不利索  用Sql早解决了
      

  9.   

    string sql = string.Format("insert into MyTable ([Id],[PARA_TYPE],[PARA_NAME],[PARA_STATES],[NOTE]) values ('{0}','2','{1}','{2}','{3}')",textBoxX1.Text,textBoxX2.Text,state,textBoxX3.Text);
    红色部分注意,也许有关键字