所以我试图将ResultSet的rs值转换为整数我真的不知道我到底做了什么到目前为止我得到了这个:
Statement sta= conn.createStatement();
ResultSet rs =sta.executeQuery("SELECT Quantity FROM stockDB WHERE Name='"+name+"' AND Size="+size+"");
String str = rs.getString("Quantity");
int quan = Integer.parseInt(str);
int fquan;
fquan=quan-quantity;
int ss= sta.executeUpdate("UPDATE stockDB SET Quantity="+fquan+" WHERE Name='"+name+"' AND Size="+size+"");
fquan中的数量=量数是一个不同的变量。
我收到此错误:
java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]无效的游标状态
这是它的全部功能。
public void UpdateDatabase(String name,int quantity,int size)
{
try{
String filename="stock.mdb";
String database="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
database += filename.trim()+ ";DriverID=22;READONLY=FALSE}";
conn=DriverManager.getConnection (database, "", "");
System.out.println("Connectiion Passed");
Statement sta= conn.createStatement();
ResultSet rs =sta.executeQuery("SELECT Quantity FROM stockDB WHERE Name='"+name+"' AND Size="+size+"");
while(rs.next())
{
String str = rs.getString("Quantity");
int quan = Integer.parseInt(str);
int fquan;
fquan=quan-quantity;
int ss= sta.executeUpdate("UPDATE stockDB SET Quantity="+fquan+" WHERE Name='"+name+"' AND Size="+size+"");
}
System.out.println("UD UPDATED");
}catch(Exception e)
{
System.out.println(e);
}
}
}
答案 0 :(得分:1)
试试这种方式
ResultSet rs =sta.executeQuery("SELECT Quantity FROM stockDB WHERE Name='"+name+"' AND Size="+size+"");
while(rs.next())
{
String str = rs.getString("Quantity");
int quan = Integer.parseInt(str);
.....
}
光标保留在第1行的顶部。rs.next()
用于检查是否存在任何行,如果存在,则返回true,光标到达第1行,rs.getString()
为用于检索特定列。当光标到达最后一行时,rs.next()
返回false并且控件退出循环。
我建议您使用preparedstatement而不是声明