使用 SQL 在 Access 中选择特定值
Posted
技术标签:
【中文标题】使用 SQL 在 Access 中选择特定值【英文标题】:Select a specific value in Access using SQL 【发布时间】:2014-02-21 20:02:15 【问题描述】:我正在开发一个将 Access 链接到 Java GUI 的项目。我目前正在寻找一种在查询中选择包含特定值的记录的方法。
如果我的字段是:
Name | Job | Hours Worked
Tom | Sales Support | 6
Bill | Manager | 8
Tom | Sales Floor | 5
我在 GUI 的搜索字段中输入 Tom,我希望它向 GUI 返回以下内容:
Name | Job | Hours Worked
Tom | Sales Support | 6
Tom | Sales Floor | 5
我尝试使用此代码:
ArrayList<String> list = new ArrayList<>();
String filePath = "C:\\Users\\Bob\\Schedule.accdb";
Connection con=DriverManager.getConnection("jdbc:ucanaccess://"+filePath);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM [Double Booking] WHERE [Name] = Tom");
while(rs.next()) list.add(rs.getString(1));
con.close();
return list.toArray();
但我得到了错误:
net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: TOM
当我输入 st.executeQuery("SELECT [Name] FROM [Double Booking]") 我收到类似的错误:
net.ucanaccess.jdbc.UcanaccessSQLException: user lacks privilege or object not found: DOUBLE BOOKING
【问题讨论】:
对于它的价值,我无法用您的第二个查询重新创建问题。executeQuery("SELECT [Name] FROM [Double Booking]")
对我来说很好。
【参考方案1】:
由于Tom
是字符串字面量,所以需要加引号:
"SELECT * FROM [Double Booking] WHERE [Name] = 'Tom'"
也就是说,如果“Tom”只是一个示例,那么如果可能的话,最好使用参数化查询。
【讨论】:
以上是关于使用 SQL 在 Access 中选择特定值的主要内容,如果未能解决你的问题,请参考以下文章
在 Microsoft Access SQL 中使用带数字文本值的 between 运算符