2017-02-23 72 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); 
相关问题