2017-02-23 87 views
-3

Im很難解決這個關於MySQL Syntax的錯誤。在第1行visual c附近的MySQL INSERT語法錯誤#

這裏是MySQL syntax

try 
     { 
      SQL = "INSERT INTO payment_history_tbl (id, payment_type, date, time, amount, student_no) VALUES (NULL, '" + cmbbxPaymentType.Text + "', CURRENT_DATE(), CURRENT_TIME(), '" + txtbxPaymentAmt.Text + "', '" + msktxbxStudNo.Text + "'"; 
      // INSERT INTO `studentpaymentqueuing`.`payment_history_tbl` (`id`, `payment_type`, `date`, `time`, `amount`, `student_no`) VALUES (NULL, 'Certificate of Enrollment', '2017-02-24', '10:19:28', '60.00', '13-0695'); 
      cmd = new MySqlCommand(SQL, conn); 
      conn.Open(); 
      cmd.ExecuteNonQuery(); 

      conn.Close(); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 

錯誤消息:

您的SQL語法錯誤;檢查手冊中 對應於你的MySQL服務器版本正確的語法使用 「」附近的1號線

任何想法?

+1

如果有人把你的代碼肯定會失敗「或只是」使用SQL參數來解決它 – Adrian

+1

這裏有一個想法......在這個問題上的代碼下面我們經常看到一個模式 – spencer7593

回答

0

你錯過了)

SQL = "INSERT INTO payment_history_tbl (id, payment_type, date, time, amount, student_no) VALUES (NULL, '" + cmbbxPaymentType.Text + "', CURRENT_DATE(), CURRENT_TIME(), '" + msktxbxStudNo.Text + "')"; 
+0

Oh!my bad -___-我想我已經習慣了'SELECT'語句,最後沒有「)」。謝謝:) – HelpMePlease

+2

我以爲MySql並沒有完全丟失,支持參數化查詢(如http://stackoverflow.com/questions/652978/parameterized-query-for-mysql-with-c-sharp),你確定你在推薦最佳實踐嗎? –

+0

@AlexeiLevenkov你是絕對正確的,這裏只是一個答案,也許不值得推薦,但答案是答案,如果答案是錯誤的,你可以告訴我然後我會解決它。如果你還有其他更好的答案,那麼你在這裏回答。感謝您的關注。 – Blank

0

使用String.Format可以幫助您獲得漂亮的代碼並輕鬆地查找錯誤。
例:


String query = String.Empty; 
query += String.Format("INSERT INTO payment_history_tbl (id, payment_type, date, time, amount, student_no)"); 
query += String.Format(" VALUES (NULL, '{0}', '{1}', {2}, '{3}', '{4}');", cmbbxPaymentType.Text, CURRENT_DATE(), CURRENT_TIME(), txtbxPaymentAmt.Text, msktxbxStudNo.Text);