JavaFX SQL查询数据类型不匹配(字符串)
我正在查询MS Access数据库,发现以下错误: java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序]条件表达式中的数据类型不匹配 有关守则:JavaFX SQL查询数据类型不匹配(字符串),sql,string,javafx,type-mismatch,Sql,String,Javafx,Type Mismatch,我正在查询MS Access数据库,发现以下错误: java.sql.SQLException:[Microsoft][ODBC Microsoft Access驱动程序]条件表达式中的数据类型不匹配 有关守则: private SimpleStringProperty getProduct(String bc) { Connection conn; String dbDriver; Statement st; ResultSet rs; SimpleSt
private SimpleStringProperty getProduct(String bc) {
Connection conn;
String dbDriver;
Statement st;
ResultSet rs;
SimpleStringProperty prod = new SimpleStringProperty();
System.out.println("BC sent to db is: " + bc.toString());
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
dbDriver = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};"
+ "DBQ=Inventario.mdb;";
conn = DriverManager.getConnection(dbDriver, "", "");
st = conn.createStatement();
String getProduct = "SELECT * FROM Articulos "
+ "WHERE BarCode = " + bc; // .toString();
其中bc是一个参数,作为字符串从TextField框中获取,作为字符串传递到此方法,MS Access中的条形码字段类型为Text
顺便说一句,我显然是在使用条形码,这是一个数字,但我的一些条形码有前导0,这就是为什么我把它作为文本。除了文本/字符串之外,有没有其他方法可以处理不同长度和不同数量的有效前导零的条形码?正如您在我的代码中所看到的,我甚至尝试将bc.toString()从JavaFX显式发送到MS Access,但我一直收到数据类型不匹配错误
最后一点注意:在不同的地方,我放置了System.out.println()来查看传递的数据,并且在所有地方它看起来都是正确的。我甚至取出了criteria子句,刚刚打印了结果集,所有正确的数据都从Access返回。我想您的查询状态是错误的。。。 你可以试着用'
String getProduct = "SELECT * FROM Articulos "
+ "WHERE BarCode = '" + bc+"'";
试试这个教程
如果你过度使用数据库,我也建议你使用JPA