我尝试根据第一个查询从单独的表中选择数据。
我有一个文本框供用户输入他们的patientID,当按下搜索按钮时,应用程序将在数据库中查询患者的ID号,并在该名称表下显示治疗名称。向左,应用程序还将根据所管理的治疗方法搜索相关费用并在右侧显示。 我只能在应用程序上显示一个查询,我不知道为什么它不能运行这两个查询。
private void button_SearchActionPerformed(java.awt.event.ActionEvent evt) {
// when this is clicked total costs loads
//by adding all of the costs column
try{
String str = field_PatientNumber.getText();
int f = Integer.parseInt(str);
String sql = "SELECT TreatmentName FROM Appointment WHERE PatientID='"+ f +"'";
String sql2 = "SELECT Cost FROM Treatment WHERE Name IN (SELECT TreatmentName FROM Appointment WHERE PatientID='"+ f +"')";
//String treatmentName = rs.getString("TreatmentName");
//System.out.println(treatmentName);
//String sql2 = "SELECT Cost FROM Treatment where Name='"+ treatmentName +"'";
rs = stmt.executeQuery(sql);
rs2 = stmt.executeQuery(sql2);
stmt = con.prepareStatement(sql);
stmt = con.prepareStatement(sql2);
jTableName.setModel(DbUtils.resultSetToTableModel(rs));
jTableCost.setModel(DbUtils.resultSetToTableModel(rs2));
double s=0;
for(int i=0;i<jTableCost.getRowCount();i++){
String d= jTableCost.getValueAt(i, 0).toString();
double d1=Double.parseDouble(d);
s+=d1;
}
String totalCost = String.valueOf(s);
field_TotalCosts.setText(totalCost);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
答案 0 :(得分:0)
你压倒了你的一个变量。
stmt = con.prepareStatement(sql);
stmt = con.prepareStatement(sql2);
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html显示一个示例,但在这种情况下它们是分开的 - Quote:
...
updateSales = con.prepareStatement(updateString);
updateTotal = con.prepareStatement(updateStatement);
事实上,再次仔细观察,你已经在实际准备之前执行了你的陈述。