一条SQL语句 引发的两个问题: 
语句入下:
 public void jButton3_actionPerformed(ActionEvent e)
  {
    PreparedStatement stmt1 = null;
    String ls_dept = (String)jComboBox1.getSelectedItem();
    String sql_dept = "select * from AppendEquipmentRegister where dept = '"+ls_dept+"'";
   // String sql_dept = "select * from AppendEquipmentRegister where if_scrap =" +1;
    
    try 
    {
     conn1= DriverManager.getConnection("jdbc:odbc:SDB", "sa","123");  
     stmt1 = conn1.prepareStatement(sql_dept);
     stmt1.execute();
     conn1.commit();
     queryDataSet1.refresh() ;
    }
    catch (Exception ex) 
    {
      ex.printStackTrace();
    }  }
}问题 1:如果 sql_dept 后 还有个and if_scarp =1 的条件 改怎么加到后sql_dept 后面去?问题2 :为什么 我查询条件改变后 执行到结果了 
queryDataSet1.refresh() ; 没能重新刷新jdbTable
-----------------------------
解决问题后 马上送分 解决一个25分 谢谢各位好心人 (佛祖会保佑你的!)

解决方案 »

  1.   

    没明白 这有什么难的 
    String sql_dept = "select * from AppendEquipmentRegister where dept = '"+ls_dept+"'"
    + " ,and if_scarp =1 "; 不就行了
      

  2.   

    问题 1:"select * from AppendEquipmentRegister where dept = '"+ls_dept+"' and if_scarp =1";
      

  3.   


    问题2:jdbTable是个JTable?
    至少应该重画一下吧
    我也不太懂
      

  4.   

    malligator(不能再整天泡在CSDN里了!) ( ) 信誉:100    Blog  2006-12-14 12:03:49  得分: 0  
     
     
       问题 1:"select * from AppendEquipmentRegister where dept = '"+ls_dept+"' and if_scarp =1"; 
     
      

  5.   

    第二个问题你得详细说说.如果是JTable的话,你得把它的数据刷新,再重绘.
    比如set一下Vector,再fireTableDataChanged();
      

  6.   

    首先把String ls_dept 改成 StringBuffer ls_dept 这样SQL语句容易扩展,然后根据你所需要的在后面加条件语句 ls_dept.append(" and if_scarp =1")就可以了,执行时候把ls_dept.toString();
      

  7.   

    谢谢 第1个问题 已经解决 第2个问题 能不能说下方法
    就是每次刷新后 不能马上把上次刷新的结果清除 具体该怎么重绘?jdbTable
    jdbTable1.setDataSet(queryDataSet1);
    public void jButton3_actionPerformed(ActionEvent e)
      {    PreparedStatement stmt1 = null;
        String ls_dept = (String)jComboBox1.getSelectedItem();
       String sql_dept = "select distinct * from AppendEquipmentRegister where dept = '"+ls_dept+"'and if_scrap =1 ";
      
        try
        {
         conn1= DriverManager.getConnection("jdbc:odbc:SDB", "sa","123");
         stmt1 = conn1.prepareStatement(sql_dept);
         stmt1.execute();  
         queryDataSet1.refresh() ;
        }
        catch (Exception ex)
        {
          ex.printStackTrace();
        }  }
    }
      

  8.   

    bsvista()你也太呆板了吧,String的连字符 + 不就等于StringBuffer的append了吗,谁说一定要定义成StringBuffer?
      

  9.   

    :"select * from AppendEquipmentRegister where dept = '"+ls_dept+"' and if_scarp =1";
      

  10.   

    第1个解决了哈 问第2个 该怎么让jdbTable刷新出来呢?该怎么重绘queryDataSet1?
      

  11.   

    如果不明白StringBuffer的用户,不要在csdn里乱喷
      

  12.   

    去看java的api,jtable和其他的swing组件不太一样,有一点mvc的感觉