请看一下这段代码并告诉我哪里弄错了:
我只想获得通过我的ms access db从Combobox中选择的服务的价格 并将其显示在文本字段中
service_box=new JComboBox();
service_box.setSize(20,25);
service_box.addItem("Select a Service");
service_box.addItem("Hair Cut");
service_box.addItem("Facial");
service_box.addItem("Bleaching");
.....
service_box.addItemListener(this);
add_bt.addActionListener(this);
...... ....
@Override
public void itemStateChanged(ItemEvent i){
service_name=(String)i.getItem();
}
@Override
public void actionPerformed(ActionEvent ie){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc.odbc:acescon");
String query= "Select price from service table where service="+service_name;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
String price_value=rs.getString("price");
total_tf.setText(price_value);
}
catch(SQLException | ClassNotFoundException e){
}
}
但它并没有显示任何错误。
db包含3列 1-ID 2服务 3价
答案 0 :(得分:0)
Connection con = DriverManager.getConnection(“jdbc.odbc:acescon”);
而不是jdbc.odbc:acescon在上面的语句中它应该是jdbc:odbc:acescon。
顺便说一句,每次点击按钮都不应创建连接。相反,您可以使用相同的连接或连接池来获得性能。
答案 1 :(得分:0)
因为没有早点回复而感到抱歉。 我正在尝试这样做:
我有一个带服务的COMBOBOX和另外一个有员工的COMBOBOX,当我点击时 在添加按钮时,它应该从DB中的服务表中获取所选值的价格,并将新行添加到下面的表中。 因此,这是我创建的最终代码,并且由于服务数量少于100,因此无法创建任何性能问题,
* 但是,如果任何人建议做更好的想法,我真的会感到欣慰* 这是工作代码“
String service_name;
String price_value = null;
try{
service_name=(String)jComboBox1.getSelectedItem(); //GET SELECTED SERVICE
String query= "Select * from services where service_name='"+service_name+"'";
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while(rs.next())
{
if(rs.getString("service_name").equalsIgnoreCase(service_name)) //GET PRICE OF SERVICE
price_value=rs.getString("Price");
}
//get employee name
String emp_name=(String)jComboBox2.getSelectedItem();
if (emp_name.equals("No one")) {
emp_name="";
}
// insert the new row
int row_count = jTable1.getRowCount();
Object[] row_data={service_name,price_value,emp_name};
dtm.insertRow(row_count, row_data);
}
catch(SQLException e){
javax.swing.JOptionPane.showMessageDialog(this,
"ERROR IN ADDING SERVICE TO BILL\n"+e.toString(),"ERROR MESSAGE",
javax.swing.JOptionPane.WARNING_MESSAGE);
}
以下代码位于ADD按钮的actionPerformed方法中。