Основная вставка работает в базе данных, но не в классе Java - PullRequest
0 голосов
/ 25 июня 2019

Я впервые использую облачную базу данных Microsoft Azure, и все SQL (SELECT, UPDATE and DELETE) работают, кроме вставки.Когда я пытаюсь вставить в таблицу, это дает мне исключение: com.microsoft.sqlserver.jdbc.SQLServerException: для обновления был сгенерирован набор результатов.

Помните, что все SQL-операции выполняются вСама база данных.

Я заметил, что он дает ее мне только при использовании stat.executeUpdate(), когда я изменяю ее на stat.executeQuery(), исключений нет, и она "успешна", но ничего не вставляет в таблицу.

Я обновил все программное обеспечение и до сих пор ничего не изменилось.

Я обнаружил, что один INSERT работает, но не другой.

Редактировать: Другой вопрос возвращает комментарийв то время как мой метод является недействительным и не использует stat.executUpdate () для получения комментария.

public static void main(String[] args)
{
    ConnectDB();
    insertHistory("5364", 10, "5005", "353", "6", 10, "admin");
}

Это неверная вставка:

    public static void insertHistory(String sInt, int iBase, String P1, String P2, String P3, int pBase, String Email)
    {
        try
        {
            stat = con.prepareStatement("INSERT INTO dbo.tblHistory (Num, BaseForNum, P1, P2, P3, BaseForP, UserID) VALUES (?, ?, ?, ?, ?, ?, ?)");
            stat.setString(1, sInt);
            stat.setInt(2, iBase);
            stat.setString(3, P1);
            stat.setString(4, P2);
            stat.setString(5, P3);
            stat.setInt(6, pBase);
            stat.setInt(7, getUserID(Email));
            stat.executeUpdate();
        }
        catch(SQLException e)
        {
            System.out.println(e);
            JOptionPane.showMessageDialog(null, "Could not save to tblHistory.");
        }
    }

Это рабочий INSERT:

    public static void insertAccount(String Email, String Password)
    {
        try
        {
            stat = con.prepareStatement("INSERT INTO dbo.tblUser (Email, Password) VALUES (?, ?)");
            stat.setString(1, Email);
            stat.setString(2, Password);
            stat.executeUpdate();
            JOptionPane.showMessageDialog(null, "Account created.");
        }
        catch(SQLException e)
        {
            JOptionPane.showMessageDialog(null, e);
        }
    }

Я ожидаю, что он не будет иметь исключений и будет вставлен в базу данных, но я получаю исключение SQL.

1 Ответ

0 голосов
/ 25 июня 2019

Я изменил stat.setInt(7, getUserID(Email)) на stat.setInt(7, 1).RealSkeptic сказал, что это потому, что он обращается к базе данных.

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