2016-07-12 104 views
-2

我得到「INSERT INTO語法錯誤」int我的查詢,我不知道爲什麼。 (到Access的連接在另一個類中)。INSERT INTO語法錯誤c#,訪問

public void InsertOrder(Order Item) // add new order 
    { 
     string cmdStr = "INSERT INTO [Order] (CostumerID,ProID,ProName,ProPrice,Comments,Discount,Color,Size,Quantity,OrdertDate) VALUES (@costumerID,@proID,@proName,@proPrice,@comments,@discount,@proColor,@proSize,@quantity,@orderDate)"; 
     using (OleDbCommand command = new OleDbCommand(cmdStr)) 
     { 

      command.Parameters.AddWithValue("@costumerID", Item.CostumerID); 
      command.Parameters.AddWithValue("@proID", Item.ProId); 
      command.Parameters.AddWithValue("@proName", Item.ProName); 
      command.Parameters.AddWithValue("@proPrice", Item.ProPrice); 
      command.Parameters.AddWithValue("@comments", Item.Comments); 
      command.Parameters.AddWithValue("@discount", Item.Discount); 
      command.Parameters.AddWithValue("@proColor", Item.ProColor); 
      command.Parameters.AddWithValue("@proSize", Item.ProSize); 
      command.Parameters.AddWithValue("@quantity", Item.Quantity); 
      command.Parameters.AddWithValue("@orderDate", Item.OrderDate); 

      base.ExecuteSimpleQuery(command); 
     } 

    } 

請幫忙嗎? 謝謝!

+2

您提出了8個問題並獲得了11個答案,但都沒有被接受。正如[Tour]接受答案中所解釋的和(稍後)的upvoting幫助其他用戶找到很好的答案。請花點時間參加[旅遊],然後點擊對號。 – Plutonix

回答

2

你需要看看這個頁面:Reserved Words in MSAccess

你會發現,大小是一個保留關鍵字,所以如果你真的不能更改名稱,還是想在你的代碼中使用它,你需要將其括在方括號內

string cmdStr = @"INSERT INTO [Order] 
      (CostumerID,ProID,ProName,ProPrice,Comments, 
      Discount,Color,[Size],Quantity,OrdertDate) 
      VALUES (@costumerID,@proID,@proName,@proPrice,@comments, 
        @discount,@proColor,@proSize,@quantity,@orderDate)"; 
+0

謝謝!問題解決了。 –

+1

很高興能有所幫助。然而,看着你的歷史,我建議你閱讀[如何接受答案的作品](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – Steve