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来提取数据。每次我运行该程序时,都会出现数据不匹配的情况。

最佳答案

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

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

代替...

使用PreapredStatements或删除引号

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


认真地使用PreapredStatements

09-10 08:49
查看更多