try{
     Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
     url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=master";
conn=DriverManager.getConnection(url,"sa","02051306");//建立与数据库的连接
stmt=conn.createStatement();
sql="select * from kemu where kemuhao='"+kemuhao+"'"; 
rs=stmt.executeQuery(sql);
int   intRowCount = rs.getRow();   
if(intRowCount>0){
    response.sendRedirect("err.jsp");
   }sql="insert into kemu(xuehao,kemuhao,kemu,xuefen,defen)";sql=sql+"values('"+xuehao+"','"+kemuhao+"','"+kemu+"','"+xuefen+"','"+defen+"')";
stmt.executeUpdate(sql); 
rs.close();
stmt.close();
conn.close();
out.println("<font size=3 color=blue>正在处理信息,请稍后......</font><meta http-equiv='refresh' content='2;url=kemu.jsp'>");
   }
   catch(Exception e){
response.sendRedirect("err.jsp");
   }
怎么获得的总是为0啊 我把大于改成等于就报错   我是想去判断数据库里有没有这条记录,没有再INSERT 现在是就算有记录也还是直接添加进去了

解决方案 »

  1.   

    加了while(rs.next)也不行!郁闷的
      

  2.   

    你先把那个sql打印出来,在数据库执行下,看看有没有数据。
    然后试下这几行:rs=stmt.executeQuery(sql);
    rs.beforeFirst();
    int   intRowCount = rs.getRow();    
    if(intRowCount>0){ 
        response.sendRedirect("err.jsp"); 
       } 
      

  3.   

    Statement stmt = connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
      

  4.   

    这个不是主键的原因吧,楼主代码的问题1. 要么stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); // 可以滚动
    rst = stmt.executeQuery(sql);
    rst.last(); // 这里如果没有移动ResultSet,那么就会是0
    int i = rst.getRow();
    2. 要么用select count(*) from tb where ..... 
    在判断这个count的值!