2016-01-26 90 views
0

嘗試將記錄插入數據庫時​​出現錯誤。當插入訪問數據庫時插入錯誤C#

這裏的錯誤:

enter image description here

驗證碼:

connection.Open(); 
      OleDbCommand command = new OleDbCommand(); 
      command.Connection = connection; 
      command.CommandText = "INSERT INTO [Booking] (TableID, BookingName, BookingNumber, BookingDate, PartySize) VALUES (@TableID, @BookingName, @BookingPhoneNumber, @BookingDate, @PartySize)"; 
      command.Parameters.AddRange(new OleDbParameter[] { 
        new OleDbParameter("@TableID", textBoxResTableID.Text), 
        new OleDbParameter("@BookingName", textBoxResName.Text), 
        new OleDbParameter("@BookingPhoneNumber", textBoxResNum.Text), 
        new OleDbParameter("@BookingDate", DateTime.Today), 
        new OleDbParameter("@PartySize", textBoxResPartySize.Text) 
       }); 

      command.ExecuteNonQuery(); 
      connection.Close(); 

的DB:

enter image description here

+0

在'insert'語句的末尾忘記';'? –

+0

@Kilanny據我所知,這不是_have to_。 –

+1

這可能是由於參數語法不正確。檢查這個答案http://stackoverflow.com/a/5894003/4795214 –

回答

2

看起來像TABLEID可能是一個保留字,根據this。爲了解決這個問題,將它放在[]中。

+0

哇。我沒有想到這是一個保留關鍵字。很好的發現。 '+ 1' –

+0

@SonerGönül - 這對我來說也是一個驚喜。我幾乎沒有看到我認爲這將是一個死衚衕。 – sr28

+0

這解決了它!我無法相信,正在絞盡腦汁!非常感謝你! – user5467760

0

我有同樣的問題,解決了它與下面的添加參數語法:

command.Parameters.Add("@UserName", OleDbType.BSTR).Value = username; 

編輯: 第一粘貼錯誤的命令。

+0

但是_why_你認爲這可以解決OP的問題嗎?什麼問題_anyway_? –

+0

我不知道爲什麼。但用他的方法,我有同樣的錯誤。不確定是否是解決方案,但爲我工作。 –