每次都是抛出失败,  PreparedStatement 这句后面的不加就不会,很奇怪,用了Statement也一样错误
<body>
 <form action="index.jsp" method="post">
        <center>
            <div align="center">
            用户名:<input type="text" name="name">
            </div>
            <br>
            <div align="center">
            密码:<input type="text" name="psd">
                
            </div>
            <br>
            <input type="submit" value="提交">
        </center>
        </form>
        <%
        String name=request.getParameter("name");
        String age1=request.getParameter("age");
     String user="sa";
     String psd="4184085";
        try
                {
          int age=Integer.parseInt(age1);
          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
          Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databasename=Test", user, psd);
          PreparedStatement psmtm=con.prepareStatement("insert into test(name,age)values('"+name+"','"+age+"'");  
          psmtm.setString(1,name);
          psmtm.setInt(2,age);
          psmtm.executeUpdate();
          //   stmt.executeUpdate(null);
           
            }catch(Exception e){
            out.println("失败");
            }        %>
  </body>

解决方案 »

  1.   

    你把SQL语句换成insert into test(name,age)values(?,?);
      

  2.   

    SQL语句换成insert into test(name,age)values(?,?);
    报什么错误?
    确定name,age都正确得到值 断点看一下
      

  3.   

    PreparedStatement psmtm=con.prepareStatement("insert into test(name,age)values('"+name+"','"+age+"'");   
      psmtm.setString(1,name);
      psmtm.setInt(2,age);
    你在PreparedStatement里已经是一条完整的SQL了
    干嘛还要调用set方法,你这不是多余吗?
    你把SQL改成insert into test(name,age) values(?,?);
    这样就可以了,加个finally{}把psmtm、conn都关了
    PreparedStatement是预编译,所以要用?来代替,然后在调用set来给每个?设置
    Statement没有预编译,所以不能使用?,那么就必须像你的写法!
    查帮助,好好了解下这两个类!
      

  4.   

    页面上怎么又这么多的sql数据啊,不怎么安全哦!!
      

  5.   

    接分. set 多余.
    system.out.println("");打印出看看结果到数据库中看看能不能显示结果...
      

  6.   

    LZ 逻辑搞错了,在访问该页面的时候,JAVA 语句已经执行,但这次访问并不是提交表单的访问,
    此时:String name=request.getParameter("name");
    String age1=request.getParameter("age");的值是 null,一定会报错的。