2011-01-07 53 views
0

EXACT重複的Syntax error in INSERT INTO statement in c# oledb?語法錯誤INSERT INTO語句中的c#OleDb的異常不能發現該錯誤

您好我不能發現該錯誤。請幫忙。由於語法錯誤,存在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()); } 



    } 
+1

你在開玩笑嗎?你能不能告訴我們錯誤是什麼? – 2011-01-07 16:53:28

回答

0

如果TargetWeightHeightTargetCalories是浮點或者整數值,他們並不需要在SQL語句中引號括起來。

另外,與您的問題沒有直接關係,但您應該真的考慮使用參數化查詢。您的代碼非常容易受到SQL注入的影響。

1

你試圖插入什麼值?是高度也許在英尺和英寸(5'10「)?在這種情況下,你會關閉字符串('),並將有語法錯誤

我同意@Brennan文森特全心全意構建原始SQL