2016-11-19 5 views
0

私はMsアクセスデータベースに接続されたjava netbeansでGUIベースのHotel Management Systemを作成しました。データベースでは、私は "RoomInfo"という名前のテーブルがあります。NetBeansからAccessデータベースに挿入

次のクエリを実行しようとすると、2種類のエラーが発生します。

String sql = "INSERT INTO RoomInfo(RoomNumber,Reserved,RoomCategory,AirConditioned, 
    BedType, RentPerDay)VALUES("+objr.roomno+","+objr.reserved+","+objr.category+"," 
    +objr.AirConditioned+","+objr.bedtype+","+objr.rent+")"; 

最初のエラーは、私は空のすべてのJTextFieldを残し、データベースに新しいレコードを挿入しようとすると、私はこのエラーを取得するnet.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 unexpected token: ,です。

2番目のエラーはnet.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 user lacks privilege or object not found: Economyです(エコノミーはルームカテゴリのエントリです)。Jtextfieldsにデータを入力してデータベースに保存しようとすると、このエラーが発生します。

問題の特定に役立つ必要があります。

+1

2つの問題である:(1)あなたは(クエスチョンマーク(? '')あなたのSQLコマンドテキストでパラメータプレースホルダとして、例えば、 '... VALUESを使用する必要があり、??? 、?、?、?) 'となります。 (2)あなたはあなたの「あなたのフィールドを空にすることはできません。 –

答えて

3

変数名を直接SQL文字列に渡してから、ps.setString()を使用して変数名を再設定するのではなく、 SQL文字列にプレースホルダを使用するだけです。 私は何を意味する

String sql = "INSERT INTO RoomInfo (RoomNumber, Reserved, RoomCategory, AirConditioned, BedType, RentPerDay) 
VALUES (?, ?, ?, ?,?)"; 
     ps = con.prepareStatement(sql); 

     ps.setString(1, objr.roomno); 
     ps.setString(2, objr.reserved); 
     ps.setString(3, objr.category); 
     ps.setString(4, objr.AirConditioned); 
     ps.setString(5, objr.bedtype); 
     ps.setString(6, objr.rent); 
+0

お返事ありがとうございます。したがって、INSERT QUERYの構文は間違っていますか? – Yousaf

+0

そうですね。 – Charles

関連する問題