Вставка данных в таблицу - PullRequest
2 голосов
/ 09 февраля 2012

Добрый вечер.

Я выполняю основное упражнение по вставке данных в таблицу базы данных Access, и в коде содержится синтаксическая ошибка, которую я пытаюсь точно определить.

Я надеялся, что смогуполучить некоторую помощь в том, где находится эта проблема синтаксиса.

Ошибка читается следующим образом java.sql.SQLException: [Microsoft] [ODBC Microsoft Access Driver] Количество значений запроса и поля назначения не совпадают.

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);
}

Вызов метода происходит следующим образом

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

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

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

1 Ответ

4 голосов
/ 09 февраля 2012

Вы пропустили пару одинарных кавычек в запросе, поэтому адрес и тип считывались как одно значение.Замените строку queryString:

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

Это должно решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...