大侠们帮我看看为什么填入表单的数据不能插入数据库
另一个页面能读出里面的数据
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ page import="java.sql.*,javax.naming.*,javax.sql.*" %>
<html>
  <head>    
    <title>创建表并插入及修改数据</title>
  </head>  
  <body>
<%String Student_id= request.getParameter("Student_id");
String Student_name= request.getParameter("Student_name");
String sex= request.getParameter("sex");
String Student_class= request.getParameter("Student_class");
String Student_grade=request.getParameter("Student_grade");
   Connection con = null;
try {

// 加载ODBC驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 通过驱动管理器(DriverManager)获得连接
con = DriverManager.getConnection("jdbc:odbc:mysj",
"sa","123");
out.println("<h2>创建student表成功!</h2><br>");
// 插入数据到student表
String Sql="insert into student(Student_id,Student_name,sex,Student_class,"     
                            + "Student_grade) values ('" + Student_id + "','"
                            + Student_name+"','"+ sex+"','"+Student_class+"','"+Student_grade+"')"; // 执行完SQL语句的结果
//b = st.execute(student);
out.println("<h2>插入数据成功!</h2><br>"); } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (con != null)
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}   %>    
  </body>
</html>

解决方案 »

  1.   

    Connection con=null;  //新建连接
    Statement sm=null;    
    ResultSet rs=null;

    try{
    Class.forName("com.mysql.jdbc.Driver");   //连接数据库
    con=DriverManager.getConnection("jdbc:mysql://localhost/sms?useUnicose=true&characterEncoding=utf8",
    "root", "root");

    sm=con.createStatement();

    String name=request.getParameter("name");  //提取表单数据
    String psw=request.getParameter("psw");

    String query="select * from player where usename = " + "'" + name + "' and password = " + "'"+psw+"'";
    rs = sm.executeQuery(query); //执行语句

    if(rs.next()){
    response.sendRedirect("success.jsp");
    }
    else{
    response.sendRedirect("false.jsp");
    }
      

  2.   

    //b = st.execute(student);Statement 没建立 也没有执行语句
      

  3.   

    楼上说的都对···lz 就光写个 SQL 况且,
    // 插入数据到student表
    String Sql="insert into student(Student_id,Student_name,sex,Student_class,"   
      + "Student_grade) values ('" + Student_id + "','"
      + Student_name+"','"+ sex+"','"+Student_class+"','"+Student_grade+"')";// 执行完SQL语句的结果
    //b = st.execute(student); 
    这个还不是你所写的 Sql
      

  4.   

    sm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String Sql="insert into student(Student_id,Student_name,sex,Student_class,Student_grade) values ('" + Student_id + "','"+ Student_name+"','"+ sex+"','"+Student_class+"','"+Student_grade+"')";ResultSet rs=stmt.executeUpdate(Sql);
    换成这段应该就行了。
      

  5.   

    四个步骤
       1,加载驱动类
       2,获得链接
       3,创建语句对象
       4,执行sql语句
      

  6.   

    应该养成良好的编码习惯,
    让数据库连接尽量放到一个单独的类中,
    让执行数据库操作的方法也放到单独的一个类中,
    在执行数据库操作时,调用的是你写的插入数据字符串而不是对象。
    ResultSet rs=stmt.executeUpdate(Sql);
      

  7.   

    加入  st.executeUpdate()语句就可以了!
      

  8.   

    改成这样还是不行  
    <% String Student_id=(String) request.getParameter("Student_id");
    String Student_name= (String)request.getParameter("Student_name");
    String Sex=(String) request.getParameter("Sex");
    String Student_class= (String)request.getParameter("Student_class");
    String Student_grade=(String)request.getParameter("Student_grade");
    Connection con=null;
    Statement sql;
    ResultSet rs;
    try {

    // 加载ODBC驱动
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    // 通过驱动管理器(DriverManager)获得连接
    con = DriverManager.getConnection("jdbc:odbc:mysj",
    "sa","123");
    // 插入数据到student表
    sql=con.createStatement();

    String condition="insert into student(Student_id,Student_name,Sex,Student_class,Student_grade) values ('" + Student_id + "','"+ Student_name+"','"+ Sex+"','"+Student_class+"','"+Student_grade+"')";rs = sql.executeQuery(condition);
    out.println("<h2>插入数据成功!</h2><br>"); } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (con != null)
    con.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }   %>    
      

  9.   

    Connection con=DriverManager.getConnection("jdbc:odbc:mysj",
    "sa","123");
    PreparedStatement pst=null;
    String sql="insert into aqcs_user(username,phone,cityid,status,cid) values(?,?,?,?,?)";
    try{
    pst=con.prepareStatement(sql);
    pst.setString(1, username);
    pst.setString(2, phone);
    pst.setString(3, city);
    pst.setString(4, "0");
    pst.setString(5, va.findCidByStatus());
    pst.execute();
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    if(con!=null){
    con.close();
    }
    if(pst!=null){
    pst.close();
    }
    if(rs!=null){
    rs.close();
    }
    }
      

  10.   

    not ResultSet
    use int returnnum=st.executeUpdate(Sql);