Java 不允许使用参数标记(更新Access数据库)
我试图更新Access数据库中的记录,但它不断地向我抛出异常,例如不允许使用参数标记 有人能帮我吗?什么时候Java 不允许使用参数标记(更新Access数据库),java,ms-access,jdbc,ucanaccess,Java,Ms Access,Jdbc,Ucanaccess,我试图更新Access数据库中的记录,但它不断地向我抛出异常,例如不允许使用参数标记 有人能帮我吗?什么时候 String sql=“update StudentDatabaseS set RollNo=?,FullName=?,FatherName=?,FatherCNIC=?,DateOfBirth=?,Class=?,Address=?,City=?,Province=?where RollNo=”+Srollno+”; 线路 ResultSet rs=st.executeQuery(s
String sql=“update StudentDatabaseS set RollNo=?,FullName=?,FatherName=?,FatherCNIC=?,DateOfBirth=?,Class=?,Address=?,City=?,Province=?where RollNo=”+Srollno+”;
线路
ResultSet rs=st.executeQuery(sql);
没有意义,因为
executeQuery
无法知道哪些值对应于参数占位符(?
)如果省略了该行,则“参数标记不允许”错误将消失,并且可以使用PrimeRealStutabor继续进行更新。
请提供异常堆栈跟踪,以及<代码> SLRONNO./COD>的值(并且,您可能还需要考虑使用该参数!)RESUTSERS= ST.ExuCuTQueQuy(SQL);似乎是无用的sbro我省略了结果集行,但现在它为上面的代码抛出空指针异常我已经发布了下面的答案,为你竖起大拇指!Statement st = connect.createStatement();
String sql = "update StudentDatabaseS set RollNo = ?, FullName = ?, FatherName = ?, FatherCNIC = ?, DateOfBirth = ?, Class = ?, Address = ?, City = ?, Province = ? where RollNo = '"+Srollno+"'";
ResultSet rs = st.executeQuery(sql);
ps = connect.prepareStatement(sql);
ps.setInt(1, roll_mo);
ps.setString(2, name_mo);
ps.setString(3, Fname_mo);
ps.setString(4, fcnic_mo);
ps.setString(5, dob_mo);
ps.setInt (6, Class_mo);
ps.setString(7, add_mo);
ps.setString(8, city_mo);
ps.setString(9, prvnce_mo);
ps.executeUpdate();
try{
Statement st = connect.createStatement();
String sql = "update StudentDatabaseS set RollNo = ?, FullName = ?, FatherName = ?, FatherCNIC = ?, DateOfBirth = ?, Class = ?, Address = ?, City = ?, Province = ? where RollNo = '"+Srollno+"'";
try {
ps = connect.prepareStatement(sql);
ps.setInt(1, roll_mo);
ps.setString(2, name_mo);
ps.setString(3, Fname_mo);
ps.setString(4, fcnic_mo);
ps.setString(5, dob_mo);
ps.setInt (6, Class_mo);
ps.setString(7, add_mo);
ps.setString(8, city_mo);
ps.setString(9, prvnce_mo);
ps.executeUpdate();
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, "Record Modified !");
search_input.requestFocus();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
catch(Exception e)
{
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(null, e);
}