Programación General > Java
Conexion Acces Y Java .. Insertar Registros..
(1/1)
Blizknight:
Hola a todos... pues despues de luchar mucho por conectar la dbase lo logre.... pero ahora tengo el problema de como insertar filas ya que en los libros utilizan algo de ObInserccion Obregistro... Obconsulta y varios asi.... pero un amigo me dio un codigo diferente... aunque me dijo que habia un error deberia de funcionar.... y me preguntaba si alguien me puede dar una mano ....
pues lo que basicamente quiero es insertar datos con la presion del boton...
y bueno luego queria tb aprender como consutlar y listar ....
pero primero poco a poco :(
aqui les dejo la dbase y espero poder resolver mi duda :(
--- Código: Text ---import java.awt.event.*; import java.awt.*;import javax.swing.*;import java.sql.*; public class Inscripcion extends JFrame{ //declaracion de variables JFrame main, main2; JLabel lblname; JTextField name; static private Statement sql; private ResultSet resultInsertar; static JButton btn_ok; //crea la interfaz grafica de usuario GUI (ves como le cambie el nombre) public Inscripcion() { setSize(500,300); //Tamanio del formulario setTitle("OTM"); //TItulo del formulario setResizable(false); //Para que no sea redimensionable setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//Para salir al cerrar getContentPane().setLayout(null); lblname = new JLabel("Nombre"); lblname.setBounds(50,100,100,23); getContentPane().add(lblname); name = new JTextField(); name.setBounds(155,100,200,23); getContentPane().add(name); btn_ok = new JButton("Ingresar"); btn_ok.setBounds(370,230, 100, 23); getContentPane().add(btn_ok); btn_ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{ resultInsertar = sql.executeQuery("INSERT INTO name(Nombre) VALUES('" + name.getText() + "')"); }catch(SQLException a){System.out.println("Error" + a);} } }); } //Metodo principal public static void main(String args[]) { String nana; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dbase = "jdbc:odbc:base"; Connection Conexion =DriverManager.getConnection(dbase); sql = Conexion.createStatement(); ResultSet nombre = sql.executeQuery("SELECT * FROM name"); while(nombre.next()){ nana = nombre.getString("Nombre"); System.out.println(nana); } nombre.moveToInsertRow(); nombre.updateString("Nombre",) nombre.close(); Conexion.close(); sql.close(); }catch(ClassNotFoundException e){ System.out.println("Clase no encontrada"); } catch(SQLException e){ System.out.println(e); } System.out.println("Sin error al conectar "); new Inscripcion().setVisible(true); } }
Blizknight:
Logre insertar filas en la dbase pero por la consola... y el valor siempre es el mismo.... como inserto por medio del textfield???
saludos
me olvide de ponerles la dbase
es la misma para ambos codes
http://rapidshare.de/files/31648520/otm.mdb.html
nombre logico base
--- Código: Text ---import java.awt.event.*; import java.awt.*;import javax.swing.*;import java.sql.*; public class Inscripcion2 extends JFrame{ //declaracion de variables JFrame main, main2; JLabel lblname; JTextField name; JButton btn_ok; //crea la interfaz grafica de usuario GUI (ves como le cambie el nombre) public Inscripcion2() { setSize(500,300); //Tamanio del formulario setTitle("OTM"); //TItulo del formulario setResizable(false); //Para que no sea redimensionable setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//Para salir al cerrar getContentPane().setLayout(null); lblname = new JLabel("Nombre"); lblname.setBounds(50,100,100,23); getContentPane().add(lblname); name = new JTextField(); name.setBounds(155,100,200,23); getContentPane().add(name); btn_ok = new JButton("Ingresar"); btn_ok.setBounds(370,230, 100, 23); getContentPane().add(btn_ok); } //Metodo principal public static void main(String args[]) { String nana; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dbase = "jdbc:odbc:base"; Connection Conexion =DriverManager.getConnection(dbase); Statement sql = Conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);; ResultSet nombre = sql.executeQuery("SELECT * FROM name"); nombre.moveToInsertRow(); nombre.updateString("Nombre","JOJOJINA"); nombre.insertRow(); while(nombre.next()){ nana = nombre.getString("Nombre"); System.out.println(nana); } nombre.close(); Conexion.close(); sql.close(); }catch(ClassNotFoundException e){ System.out.println("Clase no encontrada"); } catch(SQLException e){ System.out.println(e); } System.out.println("Sin error al conectar "); new Inscripcion2().setVisible(true); } }
Nagisa:
Hola!!
Encapsula la parte de conexion a la BBDD dentro de un metodo, y haz que se llame cuando se pulse el boton.
En el codigo que has pasado, no tiene asocido ningun listener, por lo que el boton solo sirve de adorno!!
Para insertar filas, mira la directiva INSERT en algun sitio de SQL (busca aqui); y usa la cadena correcta dentro del metodo executeQuery.
Saludos!!
Blizknight:
pues tal ves hice mal pero en este codigo no esta el listener?.. por que cuando compilo y trato de insertar me da error Y.Y
saludos
--- Código: Text --- btn_ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{ resultInsertar = sql.executeQuery("INSERT INTO name(Nombre) VALUES('" + name.getText() + "')"); }catch(SQLException a){System.out.println("Error" + a);} } });
--- Código: Text ---import java.awt.event.*; import java.awt.*;import javax.swing.*;import java.sql.*; public class Inscripcion extends JFrame{ //declaracion de variables JFrame main, main2; JLabel lblname; JTextField name; static private Statement sql; private ResultSet resultInsertar; static JButton btn_ok; //crea la interfaz grafica de usuario GUI (ves como le cambie el nombre) public Inscripcion() { setSize(500,300); //Tamanio del formulario setTitle("OTM"); //TItulo del formulario setResizable(false); //Para que no sea redimensionable setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//Para salir al cerrar getContentPane().setLayout(null); lblname = new JLabel("Nombre"); lblname.setBounds(50,100,100,23); getContentPane().add(lblname); name = new JTextField(); name.setBounds(155,100,200,23); getContentPane().add(name); btn_ok = new JButton("Ingresar"); btn_ok.setBounds(370,230, 100, 23); getContentPane().add(btn_ok); btn_ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{ resultInsertar = sql.executeQuery("INSERT INTO name(Nombre) VALUES('" + name.getText() + "')"); }catch(SQLException a){System.out.println("Error" + a);} } }); } //Metodo principal public static void main(String args[]) { String nana; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dbase = "jdbc:odbc:base"; Connection Conexion =DriverManager.getConnection(dbase); sql = Conexion.createStatement(); ResultSet nombre = sql.executeQuery("SELECT * FROM name"); while(nombre.next()){ nana = nombre.getString("Nombre"); System.out.println(nana); } nombre.moveToInsertRow(); nombre.updateString("Nombre",) nombre.close(); Conexion.close(); sql.close(); }catch(ClassNotFoundException e){ System.out.println("Clase no encontrada"); } catch(SQLException e){ System.out.println(e); } System.out.println("Sin error al conectar "); new Inscripcion().setVisible(true); } }
Navegación
Ir a la versión completa