我正在使用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());
}
答案 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”。