2013-04-21 63 views
0
private void btnSubmit_Click(object sender, EventArgs e) 
     { 
      OleDbCommand cmd; 

      string cmdstring = "INSERT INTO Names (Surname,FName) VALUES('" + txtSurname.Text + "','" + txtFName.Text + "')"; 

      OleDbConnection myConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 

      cmd = new OleDbCommand(cmdstring, myConnection); 
      myConnection.Open(); 
      cmd.ExecuteNonQuery(); 
      myConnection.Close(); 
} 

我想補充SurnameFName訪問數據庫,但錯誤已經顯示出這樣的"syntax error"。 我不知道爲什麼。INSERT INTO Access數據庫與C#

+0

您收到的具體錯誤是什麼?你也應該看看SQL注入以防止對你的應用程序的攻擊。 – 2013-04-21 17:27:37

+0

@DarrenDavies我同意 – mattytommo 2013-04-21 17:29:14

+0

@mattytommo - 偉大的思想;) – 2013-04-21 17:30:15

回答

3

以下是您查詢失敗的兩種可能原因。

  1. Namesreserved word
  2. SurnameFName值包括撇號。

您可以通過將表名括在方括號中來避免第一個問題... [Names]。但如果可能的話,選擇一個不同的名字會更好。

如果您按照其他人的建議切換到參數查詢,則可以避免第二個問題。但是在這種情況下,仍然包含表名。