I'm trying to display data between two dates through Jasper report and these are my codes:
String date1=jDateChooser1.getDateFormatString();
String date2=jDateChooser2.getDateFormatString();
try {
Connection conn = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
String url = "jdbc:sqlserver://localhost:1433;databaseName=bradb";
Connection conn = null;
try {
conn = DriverManager.getConnection(url, "sa", "oraclee");
} catch (SQLException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
JasperDesign jd = null;
try {
jd = JRXmlLoader.load("D:\\NetBeansProjects\\bra\\src\\facilitiReport.jrxml");
} catch (JRException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
String sql="SELECT * FROM facilitiTable WHERE facilitiDate BETWEEN='" + date1+ "' AND '" + date2+ "' ";
JRDesignQuery newq=new JRDesignQuery();
newq.setText(sql);
jd.setQuery(newq);
JasperReport jr = null;
try {
jr = JasperCompileManager.compileReport(jd);
} catch (JRException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
JasperPrint jp = null;
try {
jp = JasperFillManager.fillReport(jr, null, conn);
} catch (JRException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
JasperViewer.viewReport(jp);
try {
conn.close();
} catch (SQLException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
the error that appears,is:
net.sf.jasperreports.engine.JRException: Error executing SQL statement for : null at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:240) at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:240) at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1087) at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:668) at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1281) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:900) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:845) at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61) at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:849)
done,, the error were in these two lines:
String date1=jDateChooser1.getDateFormatString();
String date2=jDateChooser2.getDateFormatString();
and final codes are:
String date1 = ((JTextField) jDateChooser1.getDateEditor().getUiComponent()).getText();
String date2 = ((JTextField) jDateChooser2.getDateEditor().getUiComponent()).getText();
try {
Connection conn = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
String url = "jdbc:sqlserver://localhost:1433;databaseName=bradb";
Connection conn = null;
try {
conn = DriverManager.getConnection(url, "sa", "oraclee");
} catch (SQLException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
JasperDesign jd = null;
try {
jd = JRXmlLoader.load("E:\\bra\\src\\facilitiReport2.jrxml");
} catch (JRException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
String sql = "SELECT * FROM facilitiTable WHERE deptDate BETWEEN '" + date1 + "' AND '" + date2 + "' ";
JRDesignQuery newq = new JRDesignQuery();
newq.setText(sql);
jd.setQuery(newq);
JasperReport jr = null;
try {
jr = JasperCompileManager.compileReport(jd);
} catch (JRException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
JasperPrint jp = null;
try {
jp = JasperFillManager.fillReport(jr, null, conn);
} catch (JRException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}
JasperViewer.viewReport(jp);
try {
conn.close();
} catch (SQLException ex) {
Logger.getLogger(facilitiReports.class.getName()).log(Level.SEVERE, null, ex);
}