Foros del Web » Programación para mayores de 30 ;) » Java »

Botón consulta para base de datos

Estas en el tema de Botón consulta para base de datos en el foro de Java en Foros del Web. Quería pedir de su ayuda para lograr que este programa me funcione bien... Este trata de colocar el numero de carnet del estudiante y al ...
  #1 (permalink)  
Antiguo 16/12/2011, 18:12
 
Fecha de Ingreso: diciembre-2011
Mensajes: 1
Antigüedad: 12 años, 4 meses
Puntos: 0
Exclamación Botón consulta para base de datos

Quería pedir de su ayuda para lograr que este programa me funcione bien...
Este trata de colocar el numero de carnet del estudiante y al dar click en el botón consulta colocar cada uno de los datos en los espacios correspondientes en cada JTextField del JFrame.

Pero al darle al botón consultar el action listener no me funciona y no hace ninguna función y me tira la excepción nullPointerException o que la clase no es abstracta... y de ninguna forma logro que me coloque los datos con todo lo que he intentado, voy a colocar el código a ver que soluciones me pueden dar... cualquier sugerencia es bienvenida...
muchas gracias...


import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import java.awt.GridLayout;
import java.awt.Container;
import javax.swing.JOptionPane;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;


public class claseEstudiantes extends JFrame implements ActionListener{

private JLabel carnet;
private JLabel nombre;
private JLabel direccion;
private JLabel correo;
private JLabel nacionalidad;

private JTextField JTEXTFIELD_CARNET;
private JTextField JTEXTFIELD_NOMBRE;
private JTextField JTEXTFIELD_DIRECCION;
private JTextField JTEXTFIELD_CORREO;
private JTextField JTEXTFIELD_NACIONALIDAD;

private JButton JBUTTON_CONSULTA;

private Container contenedor;
private GridLayout cuadricula1;

// conexion a base de datos
Connection conexion = null;//Variable para establecer la conexion
Statement Objeto;//Variable para ejecutar las diferentes consultas
ResultSet Registro;//Variable para guardar los datos que devuelven las consultas

public void Conectar() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//estudiantes es el nombre del origen de datos.
conexion = DriverManager.getConnection("jdbc:odbc: estudiantes", "", "");
Objeto = conexion.createStatement();
} catch (SQLException ex) {
System.out.println(ex);
} catch (ClassNotFoundException ex) {
System.out.println(ex);
}
}

public claseEstudiantes(){ //constructor

super ("Consulta Estudiantes");
cuadricula1 = new GridLayout (6, 2, 6, 6);
contenedor = getContentPane();
setLayout(cuadricula1);

//carnet
carnet = new JLabel ("Carnet: ");
add (carnet);

JTEXTFIELD_CARNET = new JTextField (5);
add(JTEXTFIELD_CARNET);
//nombre
nombre = new JLabel ("Nombre: ");
add (nombre);

JTEXTFIELD_NOMBRE = new JTextField (20);
add(JTEXTFIELD_NOMBRE);
// direccion
direccion = new JLabel ("Dirección: ");
add (direccion);

JTEXTFIELD_DIRECCION = new JTextField (15);
add(JTEXTFIELD_DIRECCION);
// correo
correo = new JLabel ("Correo: ");
add (correo);

JTEXTFIELD_CORREO = new JTextField (15);
add(JTEXTFIELD_CORREO);
//nacionalidad
nacionalidad = new JLabel ("Nacionalidad: ");
add (nacionalidad);

JTEXTFIELD_NACIONALIDAD = new JTextField (15);
add(JTEXTFIELD_NACIONALIDAD);

// boton
JBUTTON_CONSULTA = new JButton ("Consultar");
JBUTTON_CONSULTA.setBounds(100, 100, 40, 50);
add(JBUTTON_CONSULTA);

}// fin constructor


//Metodo para buscar numero_carnet
public ResultSet Buscar(int numero_carnet) {
try {

Registro = Objeto.executeQuery("SELECT * from TA_Estudiante WHERE numero_carnet =" + numero_carnet + "");
} catch (SQLException ex) {
Logger.getLogger(claseEstudiantes.class.getName()) .log(Level.SEVERE, null, ex);
}
return Registro;
}


public void JBUTTON_CONSULTAactionPerformed(ActionEvent evento){
try {
String numero_carnet;
// si el campo esta vacio
if (JTEXTFIELD_CARNET.getText().equals(" ")) {
//msj de entrada para ingresar el carnet del estudiante a buscar
numero_carnet = JOptionPane.showInputDialog(rootPane, "Digite el Carnet del Estudiante a buscar",
JOptionPane.QUESTION_MESSAGE);
} else {// si no
numero_carnet = JTEXTFIELD_CARNET.getText();
}

// busca el estudiante con el carnet ingresado
Registro = Buscar(Integer.parseInt(numero_carnet));
try {
try {
// pone los datos en el TextField q le corresponde
JTEXTFIELD_CARNET.setText(Registro.getString("nume ro_carnet"));
JTEXTFIELD_NOMBRE.setText(Registro.getString("nomb re"));
JTEXTFIELD_DIRECCION.setText(Registro.getString("d ireccion"));
JTEXTFIELD_CORREO.setText(Registro.getString("corr eoElectronico"));
JTEXTFIELD_NACIONALIDAD.setText(Registro.getString ("nacionalidad"));

//si no existe registro
} catch (NullPointerException ec) {
JOptionPane.showMessageDialog(null, "No Existe!!");
}
} catch (SQLException ex) {
Logger.getLogger(claseEstudiantes.class.getName()) .log(Level.SEVERE, null, ex);
}
} catch (Exception e) {
System.out.println(e);
}
}// fin action performed


public static void main(String[] args) {
claseEstudiantes ClaseEstudiantes = new claseEstudiantes();
ClaseEstudiantes.setDefaultCloseOperation(JFrame.E XIT_ON_CLOSE);
ClaseEstudiantes.setSize(300,200);
ClaseEstudiantes.setVisible(true);
ClaseEstudiantes.setResizable(false);

} // fin main

}//fin claseEstidiantes
  #2 (permalink)  
Antiguo 17/12/2011, 10:06
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Botón consulta para base de datos

Ayudaría el error exacto (la excecpción) y en qué línea exacta se produce.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: clase, sql, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:45.