我用jsp做了删除数据库表中的内容
表中有两列 一个是Mname 使用的是Mname为约束条件删除 可是只能删除另一列 而Mname列删除不了  
希望各位高手指点一下
代码如下:
<%@  page  contentType="text/html;charset=gb2312"%>  
<%@  page  import="java.sql.*"%> 
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="java.lang.Integer"%>
<%@ page import="java.text.*"%> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head><body>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();  
String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_message";  String  user="sa";  
String  password="jienazql";  
Connection  conn=  DriverManager.getConnection(url,user,password);  
Statement  stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="delete from message where Mname='"+request.getParameter("Mname")+"'";
stmt.executeUpdate(sql);
response.sendRedirect("jiaoshi.jsp");
%>
</body>
</html>

解决方案 »

  1.   

    不可能吧?把stmt.executeUpdate(sql);换为stmt.execute()试试,另外,你的con和stmt用完需要关闭啊
      

  2.   

    String sql="delete from message where Mname='"+request.getParameter("Mname")+"'";
    改成:
    String mname=request.getParameter("Mname");
    String sql="delete from message where Mname='"+mname+"'";
    试试。
      

  3.   

    1. 
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    ,这个不要newInstance();
    2.最好是打印SQL语句看看,然后,最好是把PreparedStatement ps=con.prepareStatement(sql); 代替你的 Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ...