【问题标题】:Search requires entire field contents, but I want to search by only a few letters搜索需要整个字段内容,但我只想搜索几个字母
【发布时间】:2014-11-25 11:29:54
【问题描述】:

我正在使用 Sqlite,这是我为我的数据库编写的代码和我的程序运行的图片显示了困境。

我必须输入表格字段的全文才能获得搜索结果。但我只想输入几个字母来显示结果。

private void txt_SearchKeyReleased(java.awt.event.KeyEvent evt) {                                       
    // TODO add your handling code here:


    try {

        String sql ="select * from GameList1 where Name =?";
        pst=conn.prepareStatement(sql);
        pst.setString(1, txt_Search.getText());

        rs=pst.executeQuery();
        if(rs.next()) {

            String add1=rs.getString("GameID");
            txt_GameID.setText(add1);
            String add2=rs.getString("Name");
            txt_Name.setText(add2);
            String add3=rs.getString("Company");
            txt_Company.setText(add3);
            String add4=rs.getString("Format");
            txt_Format.setText(add4);
            String add5=rs.getString("YearMade");
            txt_Year.setText(add5);
            String add6=rs.getString("YearReleased");
            txt_Release.setText(add6);


        }
    }
}

【问题讨论】:

    标签: java database sqlite search netbeans


    【解决方案1】:

    我假设您想通过只输入几个字母而不是按整行值搜索来从数据库中检索数据。如果这是问题,那么解决方案就是 LIKE 运算符。

    例子:

    try {
        String sql ="select * from GameList1 where Name LIKE ?";
        String PERCENTAGE_SIGN="%";
        pst=conn.prepareStatement(sql);
        pst.setString(1, PERCENTAGE_SIGN+txt_Search.getText()+PERCENTAGE_SIGN);
    
        rs=pst.executeQuery();
        if(rs.next()) {
    
            String add1=rs.getString("GameID");
            txt_GameID.setText(add1);
            String add2=rs.getString("Name");
            txt_Name.setText(add2);
            String add3=rs.getString("Company");
            txt_Company.setText(add3);
            String add4=rs.getString("Format");
            txt_Format.setText(add4);
            String add5=rs.getString("YearMade");
            txt_Year.setText(add5);
            String add6=rs.getString("YearReleased");
            txt_Release.setText(add6);
    
    
                         }
        }
    

    【讨论】:

    • private void txt_SearchKeyReleased(java.awt.event.KeyEvent evt) { 在 try, catch 语句之上。
    • 我会在 3 分钟内尝试这些步骤
    • 我得到 "java.sql.SQLException: near "%"。语法错误
    • 按照 arun xavy 的建议尝试使用 PERCENTAGE_SIGN,并确保正确关闭所有已打开的 try 和 if 块。
    • "java.lang.RuntimeException:不兼容的源代码 - 错误的树类型:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多