2

Java でクエリを実行しようとすると問題が発生します。SQL でデータベースにオブジェクトを追加しようとすると、命令が結果セットを送信しないというエラーが表示されます。SQLサーバーでクエリを実行すると、正常に機能し、オブジェクトが挿入されます。私を助けてください。

public void addAlbum(String title, double price, String genre, String date, String home, String image) {

int number = getData().size();

boolean isThere = false;    

Statement statement;

for(int i = 0; i < getData().size();i++){

    if(getData().get(i).getTitle().equals(title)){

        isThere = true;

    }

}

if(!isThere){

    try{


        statement = connexion.createStatement();
        String query = "use albums INSERT INTO dbo.Album(Album.artist_number, title, price, genre, date, home, image) VALUES(" + number + ", '" + title + "', " + price + ", '" + genre + "', '" + date + "', '" + home + "', '" + image + "')";

        statement.executeQuery(query);

        getData().add(new Album(String.valueOf(number),title, price, genre, date, home));

        fireTableRowsInserted(getData().size() -1, getData().size() -1);

    }catch(SQLException e){

        JOptionPane.showMessageDialog(null,
                "Error "
                        + e.getMessage(), "Result",
                JOptionPane.ERROR_MESSAGE);

    }       


}else{

    JOptionPane.showMessageDialog(null,
            "There is already an album with this name", "Result",
            JOptionPane.ERROR_MESSAGE);

}
}
4

1 に答える 1

2

Statement.executeUpdate(String)を使用する必要がありますINSERTStatement.executeQuery(String)ですSELECT

PreparedStatementより良く、より簡単に、より安全に。プリペアド ステートメントの使用

于 2012-09-30T19:25:02.650 に答える