Título: consulta codigo Publicado por: juang06 en 23 Abril 2010, 08:04 am hola!
estoy haciendo algo muy basico pero soy un malisimo y no hay forma que lo haga funcionar. mi intencion es ingresar un nombre, que lo busque en una base de daos access y me responda en una caja de texto si esta o no en la base. Creo que el problema es que no se relacionar la interfas con el codigo. sepan disculpar mi ignorancia, estoy tratando de aprender solo. gracias, saludos. import java.sql.*; public class Conex extends javax.swing.JFrame { private Statement statement=null; private Connection conex=null; private String dir="C:\\base de datos\\bd1.mdb";//direcion de la base de datos private String nombre="Prueba2";//nombre de la conexion /** Creates new form Conex */ public Conex() { initComponents(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { button1 = new java.awt.Button(); ingresonombre = new java.awt.TextField(); respuesta = new java.awt.TextArea(); buscar = new java.awt.Button(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); button1.setLabel("button1"); ingresonombre.setText("textField1"); buscar.setLabel("button2"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addGap(62, 62, 62) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(button1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(buscar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(8, 8, 8))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(ingresonombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(25, 25, 25))) .addGap(76, 76, 76) .addComponent(respuesta, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(27, 27, 27)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(38, 38, 38) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(respuesta, javax.swing.GroupLayout.PREFERRED_SIZE, 191, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() .addComponent(ingresonombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(51, 51, 51) .addComponent(buscar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(33, 33, 33) .addComponent(button1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(71, Short.MAX_VALUE)) ); pack(); }// </editor-fold> /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Conex().setVisible(true); } }); } public void abrirConexion(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//carga el driver conex=DriverManager.getConnection("jdbc:odbc:"+nombre,"","");//carga la base de datos(crea la conexion con esta) statement=conex.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//para las consultas respuesta.setText("Conexion exitosa"); }catch(Exception e){ respuesta.setText("No se ha podido cargar el Driver JDBC-ODBC"); } } public void obtener(){ int id1; String input; input = ingresonombre.getText(); try{ ResultSet rs=statement.executeQuery("SELECT * FROM datos"); boolean loEncontre=false; String nombre; while(!loEncontre && rs.next()){ id1 =Integer.parseInt(rs.getString("id")); System.out.println(""); System.out.println(""+id1); for ( int contador1 = id1; contador1 <= id1; contador1++ ){ System.out.println(""+rs.getString("nombre")); nombre=rs.getString("nombre"); if (input.equals (nombre)){ // busca el nombre ingresado System.out.println("Lo encontramos...!"); respuesta.setText( nombre+" esta en la base de datos"); loEncontre=true; break; } } if(!loEncontre){ respuesta.setText("No lo encontre!"); } } }catch(SQLException e){ e.printStackTrace(); } } private void buscarActionPerformed(java.awt.event.ActionEvent evt) { Conex c=new Conex(); c.abrirConexion(); System.out.println("conectado"); respuesta.setText("conectado"); c.obtener(); } // Variables declaration - do not modify private java.awt.Button buscar; private java.awt.Button button1; private java.awt.TextField ingresonombre; private java.awt.TextArea respuesta; // End of variables declaration } Título: Re: consulta codigo Publicado por: Cuantico en 23 Abril 2010, 21:01 pm Viendolo por arriba, dos observaciones:
1. Te funciona mejor, si haces la busqueda directamente en el query, con tu clausula WHERE (condition)... 2. Exactamente que te falla? que te despliegue el mensaje? |