我想从数据库中删除特定记录。

我的代码如下:

<%
String value = request.getParameter("Meter_No");
int v=Integer.parseInt(value);
try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDirver");
Connection conn = DriverManager.getConnection ("jdbc:sqlserver://localhost:1433;databaseName=myDatabase;
user=shakir;password=shakir123");
Statement st = conn.createStatement();
ResultSet rs =st.executeQuery("DELETE * FROM qesco_table
  WHERE Meter_No ="+v+"");
rs.close();
conn.close();
  }catch(Exception e){
System.out.print(e.getMessage());
}
%>


但是它不是从数据库中删除数据。

谁能指导我代码的问题在哪里?

最佳答案

代码中的所有内容都可以。

但是您需要使用st.executeUpdate()运行查询。

因此,更改以下行

ResultSet rs =st.executeQuery("DELETE * FROM qesco_table WHERE Meter_No ="+v+"");




st.executeUpdate("DELETE * FROM qesco_table WHERE Meter_No ="+v);





您不需要在此程序中有ResultSet,因为查询不会返回任何要存储的数据。
您不需要在查询末尾有空的“”(双引号)。
您应该在finally块中关闭连接和其他连接,而不是尝试自身阻塞。


如果您尝试使用PreparedStatements编写动态查询,那就更好了。所以它会变成这样,

<%
    String value = request.getParameter("Meter_No");
    int v=Integer.parseInt(value);
    Connection conn = null;
    PreparedStatement pst = null;
    try{

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDirver");
        conn = DriverManager.getConnection ("jdbc:sqlserver://localhost:1433;databaseName=myDatabase;user=shakir;password=shakir123");
        pst = conn.prepareStatement("delete from qesco_table where Meter_No = ?");
        pst.setInt(1,v);

        pst.executeUpdate();
      }catch(Exception e){
        System.out.print(e.getMessage());
    }finally{
        pst.close();
        conn.close();
    }
%>

关于java - 使用jsp从数据库中删除数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24429224/

10-10 08:27
查看更多