如何在访问数据库中搜索新插入?

时间:2016-10-21 06:45:09

标签: java sql ms-access

我使用插入,更新,删除,搜索和打印功能创建了一个AddressBook GUI应用程序。它连接到我的访问数据库表,其中包含四个表(名称,地址,phoneNumbers和emailAddresses)

到目前为止一切正常,除非我尝试搜索刚插入表中的新输入。如果我搜索直接放入访问的记录,它就可以工作。

我认为我缩小了问题,但不知道如何修复它。当我将新记录插入到我的表中时,names表为该记录创建一个新的主键,但其余的表没有,它们只创建一个新的外键号。由于我的搜索基于内部加入id我猜我的问题就在这里,但我不确定。

这是我的搜索代码

if (e.getActionCommand().equals("Search")){
    JFrame mini = new JFrame();

    // Gets user input. If user presses Cancel, 'name' will be null
    String first = JOptionPane.showInputDialog(mini,"Enter first name:");
    String last = JOptionPane.showInputDialog(mini, "Enter last name:");

    try{

            resultSet = statement.executeQuery( "SELECT * FROM ((names INNER JOIN addresses 
                    ON names.personID = addresses.addressID)INNER JOIN phoneNumbers
                    ON names.personID = phoneNumbers.phoneID) INNER JOIN emailAddresses 
                    ON names.personID = emailAddresses.emailID 
                    WHERE lastName LIKE '%" + last + "%' AND firstName LIKE '%" + first+"%'");

            resultSet.next();

            jTextField1.setText(resultSet.getString("firstName"));
            jTextField2.setText(resultSet.getString("lastName"));
            jTextField3.setText(resultSet.getString("address1"));
            jTextField4.setText(resultSet.getString("address2"));
            jTextField5.setText(resultSet.getString("city"));
            jTextField6.setText(resultSet.getString("state"));
            jTextField7.setText(resultSet.getString("zipcode"));
            jTextField8.setText(resultSet.getString("phoneNumber"));
            jTextField9.setText(resultSet.getString("emailAddress"));
            jTextField10.setText(resultSet.getString("personID"));
            jTextField10.setEditable(false);

        } catch(SQLException sqlException) {
            JOptionPane.showMessageDialog(null, sqlException.getMessage(), "Error",
                    JOptionPane.ERROR_MESSAGE);
        }

}

1 个答案:

答案 0 :(得分:0)

访问使用*作为通配符,而不是%

相关问题