2017-02-23 11 views
-3

Imこのエラーを解決するのに苦労しているのはMySQL Syntaxです。ここでMySQL INSERTシンタックスエラー、行1のビジュアルc#

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構文でエラーが発生しています。ライン1

で「」任意のアイデアを が近く を使用する権利構文についてはMySQLサーバのバージョンに対応していること取扱説明書を確認してください?

+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

ああ、私の悪い___-私は最後に ")"がないSELECT文に慣れていたと思います。ありがとうとにかく:) – HelpMePlease

+2

私はMySqlが完全に失われていないと思っていました。 (http://stackoverflow.com/questions/652978/parameterized-query-for-mysql-with-c-sharpのような)パラメータ化されたクエリをサポートしていますが、答えにベストプラクティスを推奨していますか? –

+0

@AlexeiLevenkov You絶対に正しいです、ここではちょうど答えですが、おそらく推奨できませんが、答えは答えです、答えが間違っているなら、あなたは私にそれを修正すると言うことができます。あなたが他のより良い答えを持っているなら、あなたはここで答えます。ご注意いただきありがとうございます。 – 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); 
関連する問題