if (obj == jb) {
sql = "select * from T_business";
rs = stmt.executeQuery(sql);  while(rs.next()) {
         String da = rs.getString(2);
        String cont = rs.getString(3);
if (today.equals(da)) {
ta.setText(cont);
           }
else {
     JOptionPane.showMessageDialog(jf, "数据库中没有相关信息!");
}
}
}这段代码的 if……else位置有错误吗? 怎么在运行的时候不管if (today.equals(da)) 是否成立都有else执行呢? 我是想在判断if (today.equals(da)) 不成立后再执行else。请问到底怎么布置才行呢?

解决方案 »

  1.   

    位置没错,删掉class文件重新编译一次
      

  2.   

    这样当然会执行else啊 如果表中得到的数据的第一条记录不成立的话,就会执行else了你可以这样 查询的Sql语句就带条件 在判断查询得到的数据行  如果大于0的话 就执行if中的语句 否则的话执行else的语句.
      

  3.   

    只有当最后一条记录不符合要求时,才执行
         JOptionPane.showMessageDialog(jf, "数据库中没有相关信息!"); 
      

  4.   

    我把代码改成下面这种可以解决那问题,可是第一次点那jb时是正常的,为什么第二次再点它的时候就报空指针错误呢?请高人指点啊??!!
    if (obj == jb) {
    sql = "select * from T_business where date=" + "'" + today+ "'";rs = stmt.executeQuery(sql);
    if (rs.next()) {
    String cont = rs.getString(3);
    ta.setText(cont);
    }else {
    JOptionPane.showMessageDialog(jf, "数据库中没有相关信息!");
    }
    }
      

  5.   

    if (obj == jb) { 
        sql = "select * from T_business"; 
        rs = stmt.executeQuery(sql);     while(rs.next()) { 
            String da = rs.getString(2); 
            String cont = rs.getString(3); 
            if (today.equals(da)) { 
               ta.setText(cont); 
            } 
            else { 
            JOptionPane.showMessageDialog(jf, "数据库中没有相关信息!"); 
            } 
        } 
    } 你看到错误了吗,else在while里面了,
      

  6.   

    没有错的。if (obj == jb) 

       sql = "select * from T_business"; 
       rs = stmt.executeQuery(sql);    while(rs.next()) 
       { 
          String da = rs.getString(2); 
          String cont = rs.getString(3); 
          if (today.equals(da)) //没有错的,是和这个if匹配,现在看得很清楚,应该是其他地方的问题。
          { 
             ta.setText(cont); 
          } 
          else 
          { 
             JOptionPane.showMessageDialog(jf, "数据库中没有相关信息!"); 
          } 
       } 
      

  7.   

    建议你把if(obj==jb)改成if(obj.equals(jb))