计算DB中特定值的行

时间:2014-02-05 16:36:04

标签: sql

我正在使用netbeans并制作项目。 我想帮助计算我的数据库中男性或女性的行数。

然后我想在JtextField

中显示它
    int count=0;
  String fclass=cmb_PGender.getSelectedItem().toString();
 //  String fclass=txt_PAge.getText();
     String sql="Select * from Patient ";
try {
     ps=con.prepareStatement(sql);
      rs=ps.executeQuery();    
      while(rs.next()){
        if(fclass.equals("Male")){
         count++;
       //   txt_count.setText(count);

        }
   }

   JOptionPane.showMessageDialog(null,  "Number Of registered patients is "+count+" ");

 } catch (Exception e) {
   JOptionPane.showMessageDialog(null, e.getMessage());  
 }

1 个答案:

答案 0 :(得分:0)

你的逻辑看起来很混乱:

if(fclass.equals("Male")){
    count++;
    //   txt_count.setText(count);
}

基本上,如果他们选择了“男性”,它将向计数中添加一个,无论ResultSet中的当前记录是否实际上是男性。您最好执行一个返回该性别的记录计数的SQL查询,如下所示:

String fclass=cmb_PGender.getSelectedItem().toString();
String sql="SELECT COUNT(1) AS genderCount FROM Patient WHERE Gender = ?";
int count = 0;

try {
    ps=con.prepareStatement(sql);
    ps.setString(1, fClass);
    rs=ps.executeQuery();    

    rs.next();
    count = rs.getInt(1);
    JOptionPane.showMessageDialog(null,  "Number Of registered patients is "+count+" ");
} catch (Exception e) {
    JOptionPane.showMessageDialog(null, e.getMessage());  
}

假设您有一个名为Gender的列,其中包含字符串“Male”或“Female”。