我遇到这些命令的问题。条件表达式中的数据类型不匹配。你能帮助我吗?

时间:2014-03-25 04:06:16

标签: java jframe jpanel jscrollpane

SELECT * FROM swiftRecord WHERE recID =localID。 recID是来自access数据库的自动编号。 localID声明为整数。

Integer localID = Integer.parseInt(Global.uniNum.getText());
localID++;
System.out.println(localID);                
try
{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Global.database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\\DB\\swift_db_14.accdb;";
Global.conn = DriverManager.getConnection(Global.database, "", "");
Global.s = Global.conn.createStatement();
Global.rs = Global.s.executeQuery("SELECT * FROM swiftRecord WHERE recID = '" + localID +"' " );                               
String payLine1="";
int cou = 0;
while(Global.rs.next())
{
payLine1=Global.rs.getString("payLine1");
cou++;
}
System.out.println(payLine1);
}
catch(Exception ex)
{
ex.printStackTrace();
}

我正在尝试从名为swiftRecord的数据库中获取值。我试图通过指定唯一的recID来提取数据。每次运行程序时都会出现数据不匹配的情况。

1 个答案:

答案 0 :(得分:1)

这是今天我第二次见到这个完全相同的问题......

问题是,当您将localID变量括在引号'" + localID +"'中时,它会被视为String

,而不是...

使用PreapredStatements或删除引用

"SELECT * FROM swiftRecord WHERE recID = " + localID;  

说真的,使用PreapredStatements