【问题标题】:Select a specific value in Access using SQL使用 SQL 在 Access 中选择特定值
【发布时间】: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]") 对我来说很好。

标签: java sql sql-server ms-access ms-access-2007


【解决方案1】:

由于Tom是字符串字面量,所以需要加引号:

"SELECT * FROM [Double Booking] WHERE [Name] = 'Tom'"

也就是说,如果“Tom”只是一个示例,那么如果可能的话,最好使用参数化查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多