<% 
    request.setCharacterEncoding("UTF-8");
    String id=request.getParameter("id");
    String name=request.getParameter("name");
    System.out.println(name);
    String age=request.getParameter("age");
    String gender=request.getParameter("gender");
    String major=request.getParameter("major");
    Connection conn=null; 
    Statement stat=null; 
    ResultSet rs=null;
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    String url="jdbc:odbc:my"; 
    String user="sa"; 
    String password="123"; 
    conn=DriverManager.getConnection(url,user,password); 
    stat=conn.createStatement(); 
    rs=stat.executeQuery("insert into student(id,name,age,gender,major)values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"')"); 
%>  后面那一句报错,数据库里面的表的字段都是一致的,不知道错在哪里,知道的,帮忙解哈,谢!
   

解决方案 »

  1.   

    age  年龄 字符类型不对
      

  2.   

    改成这样试试
     rs=stat.executeQuery("insert into student(id,name,age,gender,major)values('"+id+"','"+name+"','"+age+"','"+gender+"','"+major+"')");
    注意到没有 你的 ''没有加好 
      

  3.   

    获取的Id值在插入SQL语句里面报错,
    原因:如果在数据库id是number或int类型,而你通过request获取的是String类型
     强转:
    int id=Integer.pasInt(request.getParameter("id"));
    你在试试,如果还不行,把你抱的错发过来!
      

  4.   

    检查ID,和age是否都是number类型。然后将其转换成int类型
    int id=Integer.pasInt(request.getParameter("id"));
    int age=Integer.pasInt(request.getParameter("age"));
      

  5.   

    你不觉得你这样写sql语句有点累嘛?为了增加程序的可阅读性,同时,为了使你检查起来方便,建议你把sql语句和执行语句分开写
    String sql="insert into ..........."
    st =stat.executeQuery(sql).
      

  6.   

    一个是age的属性看看跟你数据库里面的属性设置是不是一样都是字符型的,还有就是像6楼说的那样改过来
      

  7.   

    怎么这么怪呢?第一感觉!conn.setAutoCommit(false);
    stmt = conn.createStatement();
    stmt.executeUpdate(sql);
    conn.commit();
    建议这样写,SQL文件建议对象字段定义为String ,这样可以省很多问题
      

  8.   

    String sql = "insert into student(id,name,age,gender,major)values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"')" ;System.out.println(" ---> " + sql) ; //把打印的sql放到查询分析器中运行一遍
    rs=stat.executeQuery(sql) ;
      

  9.   

    request获取的值的类型和数据库中字段类型不匹配,对获取的值进行类型的转换。
      

  10.   

    rs=stat.executeQuery("insert into student(id,name,age,gender,major) values('"+id+"','"+name+"','"+age+"','"+gender+"','"+major+"')");  
      

  11.   

    把SQL打印出来 在数据库中执行一下 就知道那错了。 。