找不到访问数据库的列



我正在创建一个地址簿应用程序,并且正在研究搜索功能。每当我搜索时,我都会收到"找不到列"异常。这是我的代码:

else if(actionCommand.contentEquals("search"))
        {
        String searchInput = searchBar.getText();
        //String[] searchSplit = searchInput.split("\s");
        //String searchFirst = searchSplit[0];
        //String searchLast = searchSplit[1];
        personID = null;
        try
        {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection connection = DriverManager.getConnection("jdbc:odbc:address_book");
            Statement statement = connection.createStatement();
            ResultSet resultSet = statement.executeQuery("SELECT (personID) FROM names WHERE (lastName) LIKE ('"+searchInput+"')");
            if(resultSet.next())
                personID = resultSet.getString("personID");
            ResultSet firstQuery = statement.executeQuery("SELECT (firstName) FROM names WHERE (personID) LIKE ('"+personID+"')");
            if(firstQuery.next())
                firstNameOutput = firstQuery.getString("firstName");
            ResultSet lastQuery = statement.executeQuery("SELECT (lastName) FROM names WHERE (personID) LIKE ('"+personID+"')");
            if(lastQuery.next())
                lastNameOutput = lastQuery.getString("lastName");
            ResultSet address1Query = statement.executeQuery("SELECT (address1) FROM addresses WHERE (personID) LIKE ('"+personID+"')");
            if(address1Query.next())
                address1Output = address1Query.getString("address1");
            ResultSet address2Query = statement.executeQuery("SELECT (address2) FROM addresses WHERE (personID) LIKE ('"+personID+"')");
            if(address2Query.next())
                address2Output = address2Query.getString("address1");
            ResultSet cityQuery = statement.executeQuery("SELECT (city) FROM addresses WHERE (personID) LIKE ('"+personID+"')");
            if(cityQuery.next())
                cityOutput = cityQuery.getString("city");
            ResultSet stateQuery = statement.executeQuery("SELECT (state) FROM addresses WHERE (personID) LIKE ('"+personID+"')");
            if(stateQuery.next())
                stateOutput = stateQuery.getString("state");
            ResultSet zipcodeQuery = statement.executeQuery("SELECT (zipcode) FROM addresses WHERE (personID) LIKE ('"+personID+"')");
            if(zipcodeQuery.next())
                zipcodeOutput = zipcodeQuery.getString("zipcode");
            ResultSet phoneQuery = statement.executeQuery("SELECT (phoneNumber) FROM phoneNumbers WHERE (personID) LIKE ('"+personID+"')");
            if(phoneQuery.next())
                phoneOutput = phoneQuery.getString("phoneNumber");
            ResultSet emailQuery = statement.executeQuery("SELECT (emailAddress) FROM emailAddresses WHERE (personID) LIKE ('"+personID+"')");
            if(emailQuery.next())
                emailOutput = emailQuery.getString("emailAddress");
            newFunctionWindow();
            personIDBar.setText(personID);
            firstNameBar.setText(firstNameOutput);
            lastNameBar.setText(lastNameOutput);
            address1Bar.setText(address1Output);
            address2Bar.setText(address2Output);
            cityBar.setText(cityOutput);
            stateBar.setText(stateOutput);
            zipcodeBar.setText(zipcodeOutput);
            phoneBar.setText(phoneOutput);
            emailBar.setText(emailOutput);
            statement.close();
            connection.close();
        }
        catch (SQLException sqlException)
        {
            JOptionPane.showMessageDialog(null, sqlException.getMessage(), "Database Error", JOptionPane.ERROR_MESSAGE);
            System.exit(1);
        }
        catch (ClassNotFoundException classNotFound)
        {
            JOptionPane.showMessageDialog(null, classNotFound.getMessage(), "Driver Not Found", JOptionPane.ERROR_MESSAGE);
            System.exit(1);
        }

我三重检查了所有列名,没有错别字。我相信我所有的SQL语句也是正确的,所以我不太确定问题是什么!谢谢你的帮助。

        ResultSet address1Query = statement.executeQuery("SELECT (address1) FROM addresses WHERE (personID) LIKE ('"+personID+"')");
        if(address1Query.next())
            address1Output = address1Query.getString("address1");
        ResultSet address2Query = statement.executeQuery("SELECT (address2) FROM addresses WHERE (personID) LIKE ('"+personID+"')");
        if(address2Query.next())
            address2Output = address2Query.getString("address1");

哎呀 - 地址 1 字段中的地址 2?那行不通。(引用的最后一行)

最新更新