Eu recebo num jtextfield um código de um contrato.
no outro jtextfield eu recebo o nome do contrato, referente a este codigo.
Exemplo:
Cod: 01
Nome: Empresa 01
só que agora pra fazer a busca eu preciso que apareça o NOME também, eu consegui mostrar somente o código. Como resolvo isso? Valeu!
privatevoidjTTabelaLinhaSelecionada(JTabletabela){
if(tabela.getSelectedRow()!=-1){
txtCodigoContrato.setText((String.valueOf(notasf.get(tabela.getSelectedRow()).getCodContrato())));else{
//JOptionPane.showMessageDialog(this,"Não há linhas para selecionar");}
}
realmente desse jeito da certo, mas em notasf eu não tenho NomeContrato, somente o CodContrato.
o NomeContrato eu só tenho em lista de contratos, mas ai caso eu fizer em contratos ele me retorna NullPointerException (claro, ele vai retornar nulo pq nao nada mesmo, pois estao tudo em notasf)
Show de bola. Criei o DAO e fiz um while e deu certo.
Aproveitando o tópico, vc sabe como eu resolvo este problema? No codigo abaixo eu tenho um cbIDContrato que era um ComboBox e nele vem um objeto.
Agora no lugar deste ComboBox é um jTextField que recebe o código.
Como eu faço pra ele aceitar isso? seja recebendo objeto ou string…
public void mostraValorContrato() throws SQLException
{
Contrato contrato = new Contrato();
ContratoDao dao = new ContratoDao();
contrato = (Contrato) cbIDContrato.getSelectedItem();
dao.valorContrato(contrato.getCodContrato());
lblValorContrato.setText(dao.valorContrato);
}
Isso serve considerando que a sua tabela no banco de dados tem uma chave primária normal, mas se ela for composta, vc precisará de todos os campos que compõem a chave composta.
cbr0wn
Esqueci de dizer uma coisa: se você for criar esse outro DAO poderá inutilizar o DAO que retorna o nome do contrato, pois se você tem o objeto Contrato terá todas as suas informações (inclusive o nome).
publicStringvalorContrato;publicStringvalorContrato(IntegercodContrato)throwsSQLException{Stringsql="select c.cod_contrato,c.valor_contrato, valor_contrato "+//pq duas vezes o valor do contrato??"from contrato c inner join nf n on c.cod_contrato = n.cod_contrato "+"where c.cod_contrato=? group by c.cod_contrato,c.valor_contrato";PreparedStatementstmt=this.conexao.prepareStatement(sql);stmt.setInt(1,codContrato);ResultSetrs=stmt.executeQuery();/* ResultSet vc usa quando a sua consulta retorna vários registros (uma tabela por exemplo). Quando vc utiliza o método rs.next() vc está passando o cursor para a próxima linha da sua tabela. Por isso vc coloca ele em um while. Se vc vai retornar um único valor, não faz sentido percorrer várias linhas do seu select. Se você quer retornar o resultado inteiro do select aí sim faz sentido vc utilizar o Resultet e o while com rs.next(), mas dentro do while vc deve adicionar o objeto dentro de um List<Contrato> e retornar esse list.*/while(rs.next()){valorContrato=rs.getString("valor_contrato");//System.out.println("Valor contrato: "+valorContrato); }rs.close();stmt.close();returnvalorContrato;}
rafa120
resolvido com o cod la de cima…era problema da classe!