2016-11-19 6 views
0

Я создал систему управления сайтом на основе графического интерфейса в Java-сетях, которая связана с базой данных Ms Access. В базе данных у меня есть таблица с именем «RoomInfo».Вставка в базу данных Access из NetBeans

Когда я пытаюсь выполнить следующий запрос, я получаю два вида ошибок.

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

Первая ошибка net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 unexpected token: , я получаю эту ошибку, когда я оставить все JTextFields пустыми и попытаться вставить новую запись в базу данных.

Вторая ошибка net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 user lacks privilege or object not found: Economy (Экономика - это запись для категории номера) Я получаю эту ошибку, когда я ввожу данные в Jtextfields и пытаюсь сохранить ее в базе данных.

Нужна помощь в выявлении проблемы.

+1

две проблемы:? (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