我遇到了一些关于从 ms access 数据库中检索数据的问题

Posted

技术标签:

【中文标题】我遇到了一些关于从 ms access 数据库中检索数据的问题【英文标题】:I am getting some issues regarding retrieving data from ms access database 【发布时间】:2016-10-23 14:10:50 【问题描述】:

我正在尝试从数据库中检索数据,但遇到了一些问题。 这是我的代码:

  
        try
         
Connection conn=DriverManager.getConnection("jdbc:ucanaccess://F:\\Realestate\\real estate.accdb");
Statement st=conn.createStatement();
String sql="select Property type,Property owner from property where Property type='"+searchbyidfld.getText()+"'and Property owner='"+searchbynamefld.getText()+"'";
ResultSet rs=st.executeQuery(sql);
if(rs.next())

  String retrieve=rs.getString("Property type");
  System.out.println(retrieve);
 
  
catch(Exception ex)
 
   JOptionPane.showMessageDialog(null,"No record found");                                           
   
   

我还在 URL 中提供了数据库的正确路径。 这是我试图从中检索数据的数据库 我不知道我做错了什么。

这是堆栈跟踪:

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 user lacks privilege or object not found: PROPERTY
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.6 user lacks privilege or object not found: PROPERTY
    at net.ucanaccess.jdbc.UcanaccessStatement.executeQuery(UcanaccessStatement.java:211)
    at real.estate.Loginbtn$4$27$9$11.actionPerformed(Loginbtn.java:1691)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6535)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6300)

【问题讨论】:

“但我遇到了一些问题”——你遇到了什么问题。请明确点。是例外吗?堆栈跟踪是什么?它在您的源代码中的哪一行?人们不会运行您的代码来查找 - 因为我们没有您的数据库架构,这无论如何都很难。 @ErwinBolwidt 不,它没有给我任何例外 包含空格的列名必须用方括号括起来,例如select [Property type], [Property owner] from property ... 那么您遇到了什么问题? 您的代码也容易受到 SQL 注入 问题的影响。 (想象一下如果 [property owner] 是Sally O'Malley 会发生什么。)您应该使用PreparedStatement 来执行参数化查询 【参考方案1】:

在你的代码中试试这个String sql="select [Property type],[Property owner] from property where [Property type]='"+searchbyidfld.getText()+"'and [Property owner]='"+searchbynamefld.getText()+"'"; 包含空格的列名应该用方括号括起来。我希望这对你有用

【讨论】:

以上是关于我遇到了一些关于从 ms access 数据库中检索数据的问题的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 多选列表移动器 v2

从 MS Access 数据库中检索最后插入的 ID

如何在 MS Access 中相交?

MS Access 无法创建 MDE 错误。对象太多

表格/查询中不存在MS Access Combobox的值

MS Access:从 VBA 列出宏