查询表达式'Nombreproductos =='some product'中的语法错误(缺少运算符)

时间:2015-06-18 19:39:31

标签: java mysql

我有这段代码:

try{

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        String db = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=Productosh.mdb";
        Connection con = DriverManager.getConnection(db, "", "");
        Statement s = con.createStatement();
        ResultSet hola = s.executeQuery("select Precioventau from Productos where Nombreproductos == '"+jComboBox1.getSelectedItem()+"'");
        while (hola.next()){
            double preciou = hola.getDouble("Precioventau");
            System.out.println(preciou);
            jTextField5.setText(String.valueOf(preciou));
        }


    } catch(ClassNotFoundException | SQLException e){
        JOptionPane.showMessageDialog(null, e);
        e.printStackTrace();
    }

在文本字段中设置查询结果。 它确实引发了异常,但我无法弄清楚如何解决它。

  

java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序]   查询表达式'Nombreproductos中的语法错误(缺少运算符)   =='某种产品'

Nombreproductos是表Productos中的字段。

2 个答案:

答案 0 :(得分:1)

在比较SQL中的字符串时,您可以使用“=”或关键字LIKE

ResultSet hola = s.executeQuery("select Precioventau from Productos where Nombreproductos = '"+jComboBox1.getSelectedItem()+"'");
while (hola.next()){

ResultSet hola = s.executeQuery("select Precioventau from Productos where Nombreproductos like '"+jComboBox1.getSelectedItem()+"'");
while (hola.next()){

'='和LIKE之间的差异是'='必须是相同的匹配。 'LIKE'能够使用通配符。

答案 1 :(得分:0)

SQL中没有==运算符;你可以用=比较相等。尝试

"select Precioventau from Productos where Nombreproductos = '"+
    jComboBox1.getSelectedItem()+"'"