2017-09-20 15 views
-2

このエラーが表示されるので、私のコードに少し問題がありますjava.sql.SQLSyntaxErrorException?

'java.sql.SQLSyntaxErrorException:割り当てられた値の数が、指定された列または暗黙の列の数と同じではありません。

私は同様の問題を読んでいますが、私のエラーの表示方法についてはまだ混乱しています。また、私は値の間にこのように "、"入れてみましたが、それでもいいことはありません。そして準備された声明は何ですか?

//CONNECTION 
    Connection conn = null; 
    try{ 
    conn = 
    DriverManager.getConnection("jdbc:derby://localhost:1527/MetroEventsDB", 
    "root", "root"); 
    System.out.println("Connected"); 

    //Insertion 
    Statement stmt = (Statement) conn.createStatement(); 
    stmt.execute("INSERT INTO Users(UserID, Password, FirstName, LastName, Gender, Birthdate) VALUES('"+txtUserID.getText()+txtPassword.getText()+txtFirstName.getText()+txtLastName.getText()+gender+txtBirthdate.getText()+"')"); 
    }catch(SQLException e){ 
      System.err.println(e); 
      } 
+1

「PreparedStatement」を正しく使用する方法を教えてください。 [JDBCチュートリアル](http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html)を読むことで –

+0

私はそれを調べた後、私の悪い私は単一のqoutationを見失っていたのを見た。それでこのように見えるはずです。 VALUES( '"+ txtUserID.getText()+"'、+ "txtPassword.getText() – justanything

+0

いいえ、それはプレースホルダを持つ' PreparedStatement'でなければなりません。 SQLクエリへのユーザ入力 –

答えて

1

stmt.executeに構文エラーがあります。正しい構文は次のとおりです。

+0

はい!! ....ああ私はその単一のqoutationああを逃した...返信ありがとう – justanything

関連する問題