Bien
lo primero que te tenemos que hacer es crear un jFrame para crear la
tabla. Creado el jFrame lo primero que hacemos es colocar un Scroll Pane
nos quedara de la siguiente forma:
Bien ahora ingresaremos un Table dentro del Scroll Pane así:
Después
de haber creado la tabla debemos borrar su contenido, debemos dar clic
derecho en la tabla y seleccionamos la opción Table Contens es la
primera que nos sale:
Nos mostrara una ventana y daremos clic en la opción de columnas:
Bien ahora solo tenemos que seleccionar las columnas para poderlas borrar:
Después de haber eliminado todas las columnas de la tabla nos quedara así:
Ahora tenemos que crear el código para eso nos vamos a source e importamos las siguientes Librerías:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
Bueno recuerden que ya deben estar conectados con la base de datos Access, Ahora crearemos el modelo de la tabla:
DefaultTableModel tabla = new DefaultTableModel(); //Codigo que crea el modelo de la tabla
Si quieren que la tabla no se pueda editar tendran que añadir el siguiente código:
DefaultTableModel tabla = new DefaultTableModel() {
@Override
public boolean isCellEditable(int Fila, int Colum) {
return false;
}
};
Después
de haber creado el modelo de la tabla vamos a crear los títulos de los
campos para eso crearemos un método llamado cargarTitulosColumas():
public void cargarTitulosColumas(){
tabla.addColumn("Nombre");
tabla.addColumn("Apellido");
tabla.addColumn("Direccion");
this.jTable1.setModel(tabla);
}
Lo
único que nos falta es crear un método para realizar la consulta y
llenar la tabla para eso crearemos otro método llamado cargarDatos();
public void cargarDatos() {
String datos[] = new String[3]; //Variable que almacena los datos de la consulta
String sql = "select Id, Nombre, Apellido, Direccion, from Datos"; //Consulta sql
try {
ResultSet resultado = sentencia.executeQuery(sql); //Linea que ejecuta la consulta sql y almacena los datos en resultado
while (resultado.next()) { //Bucle que recorre la consulta obtenida
datos[0] = resultado.getString("Nombre");
datos[1] = resultado.getString("Apellido");
datos[2] = resultado.getString("Direccion");
tabla.addRow(datos);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Error al cargar los Datos\n" + ex);
}
}
Ahora solo nos toca llamar a los métodos desde el constructor:
Listo ahora cada vez que ejecutemos el programa nos cargara los datos de la base de Access.
Cargar datos a una jTable con datos de Access - cuando ejecuto despues de aver insertados los codigos _ me sale "error al cargar datos" una solucion
ResponderEliminarGRACIAS
Buenas, tardes. Ejecuto este código y aún no funciona. Mi correo es rafa80cb@gmail.com. Al ejecutar el código obtengo lo siguiente:
ResponderEliminarError al cargar los datos
net.ucanaccess.jdbc.UcanaccessSQLException:UCAEx::: 5.0.0-SNAPSHOT discrepancia en el número de filas contadas.
MI CÓDIGO:
public class JFimportar extends javax.swing.JFrame {
//Creando las variables conexion y sentencia de manera global. De esta forma nos permitirá utilizarlas en todo el proyecto:
Connection conexion;
Statement sentencia;
//Ahora crearemos el modelo de la tabla:
DefaultTableModel tabla = new DefaultTableModel() //Código que crea el modelo de la tabla.
//DefaultTableModel table = new DefaultTableModel(); // Si desea que se pueda editar la tabla, se elimina el código de abajo desde línea 32 ({ @Override...) a la 36 (...};) y se activa esta línea retirando los //
{ @Override
public boolean isCellEditable(int Fila, int Colum) {
return false;
}
};
/**
* Creates new form JFimportar
*/
public JFimportar() {
initComponents();
conectatarBaseDatos();
cargarTitulosColumas();
cargarDatos();
}
//Método llamado conectatarBaseDatos(), para crear la conexión.
public void conectatarBaseDatos() {
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); //Linea que carga el driver
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "Error al cargar driver.");
}
try {
conexion = DriverManager.getConnection("jdbc:ucanaccess://D:\\TRADUCCIÓN - RAFA\\PROYECTOS JAVA\\PruebaConexionBD_base_de_datos\\BDprueba.accdb"); //En esta parte tenemos que cambiar la ruta en la que se encuentra nuestra base de datos.
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error en la dirección de la base de datos");
}
try {
sentencia = conexion.createStatement();
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Error al crear la conexión con la base de datos");
}
}
//Después de haber creado el modelo de la tabla vamos a crear los títulos de los campos para eso crearemos un método llamado cargarTitulosColumas():
public void cargarTitulosColumas(){
tabla.addColumn("Nombre");
tabla.addColumn("Apellido");
tabla.addColumn("Rut");
tabla.addColumn("Telefono");
tabla.addColumn("Edad");
this.jTable1.setModel(tabla);
}
public void cargarDatos() {
String datos[] = new String[3]; //Variable que almacena los datos de la consulta
String sql = "Select (Nombre, Apellido, Rut, Telefono, Edad) from Prueba"; //Consulta sql
try {
ResultSet resultado = sentencia.executeQuery(sql); //Linea que ejecuta la consulta sql y almacena los datos en resultado.
while (resultado.next()) { //Bucle que recorre la consulta obtenida
datos[0] = resultado.getString("Nombre");
datos[1] = resultado.getString("Apellido");
datos[2] = resultado.getString("Rut");
datos[3] = resultado.getString("Telefono");
datos[4] = resultado.getString("Edad");
tabla.addRow(datos);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Error al cargar los datos\n" + ex);
}
}
/**
* 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.
*/
tu String debe ser con valor a 5 por que tienes valores desde el 0 al 4
Eliminarpublic void cargarDatos() {
String datos[] = new String[5]; //Variable que almacena los datos de la consulta
String sql = "Select (Nombre, Apellido, Rut, Telefono, Edad) from Prueba"; //Consulta sql
try {
ResultSet resultado = sentencia.executeQuery(sql); //Linea que ejecuta la consulta sql y almacena los datos en resultado.
while (resultado.next()) { //Bucle que recorre la consulta obtenida
datos[0] = resultado.getString("Nombre");
datos[1] = resultado.getString("Apellido");
datos[2] = resultado.getString("Rut");
datos[3] = resultado.getString("Telefono");
datos[4] = resultado.getString("Edad");
tabla.addRow(datos);
}
Anonimo a mi me paso lo mismo que a vos, lo que hice fue colocar bien el nombre de la carpeta en el C y que coincida en netbeans, el codigo funciona bien. Saludos
ResponderEliminarGracias.
ResponderEliminar