c#OleDb异常中INSERT INTO语句的语法错误无法发现错误

c#OleDb异常中INSERT INTO语句的语法错误无法发现错误,c#,ms-access,syntax-error,oledbexception,C#,Ms Access,Syntax Error,Oledbexception,精确的副本 嗨,我看不出错误。请帮忙。由于语法错误,存在OleDb异常。 INSERT INTO语句中的语法错误OleDb异常未处理 private OleDbConnection myCon; public Form1() { InitializeComponent(); myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C.mdb")

精确的副本

嗨,我看不出错误。请帮忙。由于语法错误,存在OleDb异常。 INSERT INTO语句中的语法错误OleDb异常未处理

    private OleDbConnection myCon;

    public Form1()
    {
        InitializeComponent();
        myCon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C.mdb");
    }

private void insertuser_Click(object sender, EventArgs e)
    {
        try
        {
            OleDbCommand cmd = new OleDbCommand();
            myCon.Open();
            cmd.Connection = myCon;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "INSERT INTO User ([UserID], [Forename], [Surname], [DateOfBirth], [TargetWeight], [TargetCalories], [Height]) Values ('" + userid.Text + "' , '" + fname.Text + "' , '" + sname.Text + "' , '" + dob.Text + "' , '" + tarweight.Text + "' , '" + tarcal.Text + "' , '" + height.Text + "')";


            cmd.ExecuteNonQuery();
            myCon.Close();
        }
        catch (Exception ex) { MessageBox.Show(ex.ToString()); }



    }

如果
TargetWeight
Height
targetCarries
是浮点值或整数值,则它们不需要在SQL语句中用引号括起来


也不直接与您的问题相关,但您应该真正考虑使用参数化查询。您的代码很容易受到SQL注入的攻击。

您试图插入的值是什么?高度可能以英尺和英寸(5'10“)为单位吗?在这种情况下,您将关闭字符串('),并将出现语法错误


我完全同意@Brennan Vincent的观点。构建原始SQL不是前进的方向。

你在开玩笑吗?你愿意告诉我们错误是什么吗?在表名“User”周围放上括号[]“。这是SQL Server中的保留字。请参数化您的查询。与您几分钟前刚问过的问题完全相同-不要反复问同一个问题!