Pessoal,
Fiz um sistema aqui para buscar alguns valores na tabela e me mostrar uma JPanel caso os valores obtidos do JTextField fossem encontrados.
Tenho 2 campos, o primeiro é o local e o segundo é a posição.
Meu intuito é fazer com que o programa busque no BD primeiro no local e, segundo, a posição, exibindo o JPanel caso aquela posição tenha sido encontrada no local. E exibir outra janela caso não tenha encontrado aquela posição para aquele determinado local.
No entanto, tenho duas colunas de posições para um local, ou seja, eu checo primeiramente o campo do local e depois verifico as duas outras colunas de posição.
O problema é que aparentemente meu programa não está checando o campo local na verificação por posições, por que quando vou cadastar um novo local, com uma posição já existente em outro local previamente cadastrado, ele diz que não é possivel cadastrar sendo que os locais são completamente diferentes, porém podem ter a mesma posição
Não sei se fui claro o bastante, mas segue o código que talvez possa esclarecer mais.
try{
String dsn = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/xxx/xxx.mdb";
String usuario = "";
String senha = "";
String sql = "";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Connection con = DriverManager.getConnection(dsn,usuario,senha);
Statement st = con.createStatement();
PreparedStatement ps = con.prepareStatement("SELECT * FROM OBJ WHERE POSICAO1=? OR POSICAO2=? AND LOCAL=?");
ps.setString(1, tf_p1.getText());
ps.setString(2, tf_p1.getText());
ps.setString(3, tf_local.getText());
ResultSet rs = ps.executeQuery();
int numberOfRows = 0;
while(rs.next()){
numberOfRows++;
}
st.close();
con.close();
if (numberOfRows != 0){
JOptionPane.showMessageDialog(null," Posição Ocupada! \n\nSelecione outra posição!",JOptionPane.ERROR_MESSAGE);
}
else{
JOptionPane.showMessageDialog(null," Posição Disponível", JOptionPane.INFORMATION_MESSAGE);
}
} catch(Exception e) {
System.out.println(e);
}
:D:D
