private void pesquisar_venda() {
if (jtData_inicial.getText().equals(" / / ")) {
JOptionPane.showMessageDialog(this, "Preencha o campo data inicial.");
jtData_inicial.requestFocus();
} else if (jtData_final.getText().equals(" / / ")) {
JOptionPane.showMessageDialog(this, "Preencha o campo data final.");
jtData_final.requestFocus();
} else {
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Date datainicial = null;
Date datafinal = null;
try {
datainicial = new SimpleDateFormat("dd/MM/yyyy").parse(jtData_inicial.getText());
datafinal = new SimpleDateFormat("dd/MM/yyyy").parse(jtData_final.getText());
} catch (ParseException ex) {
Logger.getLogger(RelatorioFinanceiro.class.getName()).log(Level.SEVERE, null, ex);
}
String dataInicial = new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(datainicial);
String dataFinal = new SimpleDateFormat("yyyy-MM-dd 23:59:59").format(datafinal);
if ((!jtData_inicial.getText().equals("")) && (!jtData_final.getText().equals(""))) {
String sql = "SELECT venda.data_inc as Data, \n"
+ " clientes.nome AS Nome,\n"
+ " usuario.usuario AS Usuário,\n"
+ " venda.total as Total\n"
+ "FROM venda\n"
+ " INNER JOIN clientes ON \n"
+ " venda.id_cliente = clientes.id \n"
+ " INNER JOIN usuario ON \n"
+ " venda.id_usuario = usuario.id \n"
+ " \n"
+ " where venda.data_inc between '" + datainicial + "' and '" + datafinal + "'";
try {
pst = conexao.prepareStatement(sql);
pst.setDate(1, (java.sql.Date) datainicial);
pst.setDate(2, (java.sql.Date) datafinal);
rs = pst.executeQuery();
tbVendas.setModel(DbUtils.resultSetToTableModel(rs));
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
} catch (NullPointerException ex) {
JOptionPane.showMessageDialog(null, " Relatorio não localizado nesta data!");
}
}
}
}
Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at br.com.visual.VendasConsulta.pesquisar_venda(VendasConsulta.java:994)
me desculpe a ignorancia eu sou burro nisso, e realmente como vc ja tinha me dito eu nao sei bem o q estou fazendo, mas sou teimoso, uma hora eu aprendo.
nao entendi como fazer, perdoi me por te importunar
Tem coisas erradas na codificação, onde você passa diretamente a data na SQL (erro e problemas de injeção de SQL) e logo após cria dois paramentros … ??? isso que não entendi.
Como já foi dito esse cast não funciona !!! e não é necessário ou é ???
Tem problemas conceituais o seu código, tem que revisar e refatorar!
Mas “na tora”, nem o básico você aprende.
Um dos problemas que temos é a pressa, a vontade de pular etapas.
Você não começou a aprender matemática a partir da Fórmula de Bhaskara, precisou aprender os números, as operações básicas, operações mais complexas, depois as primeiras equações, inequações, até chegar em equações de segundo grau.
Um passo de cada vez.
@darlan_machado amigo se eu tivesse perguntado algo muito simples eu te dava razão, o forum aqui pra mim é o ultimo caso, so sabe criticar, e mandar se virá
o @staroski fez uma critica construitiva e me ajudou
A resposta do seu problema já havia sido respondida pelo amigo @Rodrigo_Void, que explicou que você estava concatenando valores na query e também setando parâmetros, o que não é certo.
Assim como nosso amigo @darlan_machado, eu também te disse que não dá pra aprender na tentativa e erro.
so tem um problema eu quero tirar o relatorio do dia, mas nao da certo notei que para eu conseguir eu tenho q acrescentar 1 dia na data final, pra mim isto é um erro
como eu resolveria ??
creio q se eu inserisse este codigo daria certo mas eu insiro e nao da certo
String dataInicial = new SimpleDateFormat(“yyyy-MM-dd 00:00:00”).format(datainicial);
String dataFinal = new SimpleDateFormat(“yyyy-MM-dd 23:59:59”).format(datafinal);