从NetBeans插入Access数据库

问题描述:

我已经创建了一个基于GUI的酒店管理系统在Java netbeans中与Ms Access数据库连接。在数据库中,我有一个名为“RoomInfo”的表。从NetBeans插入Access数据库

当我尝试执行以下查询时,出现两种错误。

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)你试图插入行之后,而不是之前,你正在做的“没有任何字段可以留空”。 –

而不是直接将变量名称传递给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