在日期之间搜索如何在jtable中显示

时间:2017-10-10 10:02:18

标签: java netbeans

这是代码,我正在使用2 jdatechooser,我将代码放在一个按钮中。我也不确定查询是否正确。

  private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try 
{ 

  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String url="jdbc:sqlserver://USER-PC:1433;databaseName=tblgg";
        String userr="sa";
        String passs="1234";
        Connection con=DriverManager.getConnection(url,userr,passs);

  java.util.Date first =  dt1.getDate();
    java.util.Date second = dt2.getDate();
   String sql="SELECT * FROM tbl_sale WHERE date between '"+ first+"'and 
    '"+second+"'";

 PreparedStatement pst= con.prepareStatement(sql);



   ResultSet rs = pst.executeQuery();
 tblsale.setModel(DbUtils.resultSetToTableModel(rs));

} 
catch (Exception e) 
{
   JOptionPane.showMessageDialog(null, e);  
} 
}                  

好的,我编辑我的代码。 xD现在发生了一些事情,但没有任何事情出现。

1 个答案:

答案 0 :(得分:-2)

纠正您缺乏准备好的声明用法。试试这个

重新使用您的连接

 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String url="jdbc:sqlserver://USER-PC:1433;databaseName=tblgg";
    String userr="sa";
    String passs="1234";
    Connection con=DriverManager.getConnection(url,userr,passs);
    ResultSet result = null; 

    String sql2 =  "select\n" +
            "*\n" +
            "from student\n" +
            "where date(first) > ? and date(second) < ?";
    PreparedStatement ps1 = con.prepareStatement( sql2, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY) ;
    ps1.setObject (1 , startDatePicker.getModel().getValue());
    ps1.setObject (2 , endDatePicker.getModel().getValue());


    result = ps1.executeQuery();
    // get number of rows
    result.last();
    numRows = result.getRow();
    result.first();
    //Get metadata object for result
    ResultSetMetaData meta = result.getMetaData();
    // create an arry of string for the colum names
    colNames = new String[meta.getColumnCount()];
    // store column names in the new col names array
    for( int i = 0; i< meta.getColumnCount(); i++)
    {
        //get column name
        colNames[i] = meta.getColumnLabel(i+1);

    }
    // create 2 d string array for table data
    tableData = new String [numRows][meta.getColumnCount()];
    // store columns in the data
    for ( int row = 0 ; row < numRows; row++)
    {

        for (int col = 0; col < meta.getColumnCount(); col++)
        {
            tableData[row][col]= result.getString(col + 1);

        }

        result.next();
    }


    // close statement
    ps1.close();
    connection.close();
    System.out.println("Data Table Loaded.");





}

要显示创建的结果数据集,请使用以下行

JTable table = new JTable(tableData,colNames);
JScrollPane scrollPane = new JScrollPane(table);

不要忘记将滚动窗格添加到JPanel

panel.add(scrollPane);