public boolean saveUser(String userName,String password){
        conn=getCon();
        
        String sql="insert into UserInfo values (?,?)";
        try {
            pstmt=conn.prepareStatement(sql);
            pstmt.setString(1,userName);
            pstmt.setString(2,password);
            int count=pstmt.executeUpdate(sql);
            if(count>0)
                return true;
        } catch (SQLException ex) {
        }
        
        return false;    }帮忙看下这里是不是有问题

解决方案 »

  1.   

    2楼的..
    我不是很懂``主键我设的是userName
    在SQL SERVER里设的
    这里还要设吗?
      

  2.   

    测试连接是成功的就是插入返回值是FALSE
      

  3.   

    你在int count=pstmt.executeUpdate(sql);打印count看看!
    应该是这句int count=pstmt.executeUpdate(sql);出的乱子.
      

  4.   

    } catch (SQLException ex) {
    ex.printStackTrace();
            }
    我感觉你是抛异常了,但出现异常你什么也没做,直接返回false了
    加上:ex.printStackTrace();
      

  5.   

    你先把
    pstmt.setString(1,userName);
    pstmt.setString(2,password);
    里的
    username,password 改为一个实实在在的字符串试试我想是不是它们两没正常传到值
      

  6.   

    最好的测试办法是将你的SQL 语句输出,拿到查询分析器里执行看看。
      

  7.   

    字符串是直接引用过来的打印确认过没问题的.异常那里写不写没什么问题吧..反正没问题的时候就直接返回TRUE了
    有问题直接就是FALSE呀.因该是SQL没写入.我把SQL打印了一下..
    还是 insert into UserInfo values (?,?)因该是
    pstmt.setString(1,userName);
    pstmt.setString(2,password);
    没有把数据插入问号.不知道怎么弄了望指教..
      

  8.   

    查出来了.原来
    int count=pstmt.executeUpdate(sql);
    sql不用加``= =;
      

  9.   

    我刚学J2EE 但是我觉得ECLIPCE 这个工具还是不错 呵呵~~~
      

  10.   

    我看你还是不知道异常的用处啊,你在catch里什么也不写,如果抛异常了也能返回false,所以你得看一下有没有出现异常,如果出了异常是什么异常,好去处理啊
      

  11.   

    count=pstmt.executeUpdate(sql);这条语句,这条语句常常抛出条件未设定值的异常。因为你设了两次sql,
    一次是conn.prepareStatement(sql);而这里是第二次了,你在第一次之后设置了值,但第二次执行的语句却
    没有值,所以有些情形下会抛值为设定异常。
    改成count=pstmt.executeUpdate(sql)应该就没有问题了。
    用pstmt.executeUpdate(s);的返回值来判断成功与否是有风险的,一般不用这个返回值做判断执行成功还是失败。
    一般情形下,执行不成功就会有异常抛出,所以你完全可以到捕捉异常的地方返回false或其他可以代表
    插入失败的表示。即使失败不是还可以回滚的吗?我们甚至可以回滚到一个具体的点,叫savepoint上。
      

  12.   

                pstmt.setString(1,userName);
                pstmt.setString(2,password);
    应该第一个问号,是该是0把。
                pstmt.setString(0,userName);
              pstmt.setString(1,password);
    试一试