2014-02-05 111 views
0

我正在使用netbeans並進行項目。 我想幫忙從我的數據庫中統計男性或女性的行數。在DB中計算特定值的行

然後我想在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

'選擇性別,從病人組計數(*)按性別'可能是經典的答案..但fr學習..你試圖通過Java找到它? –

+0

您可以將模式添加到問題中嗎?這隻會在sql中更容易完成。 –

回答

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列包含字符串「男」或「女」 。

+0

這工作正常..謝謝大家..夥計們,如何設置整數值到JtextField ..它給我錯誤。 rs.next(); count = rs.getInt(1); txt_count_age.setText(count); – user3265292