2012-02-09 15 views
2

おはようございます。テーブルにデータを挿入する

私はAccess Database Tableにデータを挿入するための基本的な練習をしていますが、コードには文法上の誤りがあります。

構文上の問題がどこにあるのかについて助けを得たいと思っていました。

エラーは次のようになります。 java.sql.SQLException:[Microsoft] [ODBC Microsoft Access Driver]クエリ値と宛先フィールドの数が同じではありません。

Insertingdata example; 
    try 
    { 
     example = new Insertingdata(); 

     example.addData("15", "Bob Dylan", "Los Angeles", "Folk"); 

    } 
    catch(SQLException se) 
    { 
     se.printStackTrace(); 
    } 
    catch(ClassNotFoundException ce) 
    { 
     ce.printStackTrace(); 
    } 

答えて

4

に従ってくださいあなたは、クエリ内の単一引用符のカップルを逃したので、アドレスおよびタイプは、単一の値として読まれていたとして

public void addData(String ID, String name, String address, String type) throws SQLException 
{ 
    int rowsadded; 
    Statement statement = conn.createStatement(); 
    String queryString = "INSERT INTO Artists(ID, Name, Address, Type) VALUES (" + ID + ", '" + name + "', '" + address + ", " + type + "')"; 

    System.out.println(queryString); 
    System.out.println(ID + "(ID) added to the database"); 
    rowsadded = statement.executeUpdate(queryString); 
    System.out.println("Rows updated = " + rowsadded); 
} 

メソッドの呼び出しが発生します。 queryString行を次のように置き換えます。

String queryString = "INSERT INTO Artists(ID, Name, Address, Type) VALUES (" + ID + ", '" + name + "', '" + address + "', '" + type + "')"; 

これで問題は解決します。

+0

(+1)この種のエラーを回避するには、プリペアドステートメントを使用してください。 – soulcheck

+0

ありがとうございます。愚かな間違い – Arianule

関連する問題