Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2008, 20:43
leoi
 
Fecha de Ingreso: agosto-2002
Mensajes: 202
Antigüedad: 22 años, 6 meses
Puntos: 1
Insert en forma conectada (sin dataset)

Hola,

Estoy intentando aprender el manejo de bases de datos en .NET. Mi intencion es agregar un registro en forma conectada, es decir sin datasets ni datatables de por medio. Seria, de forma parecida a VB6, ejecutando un comando sobre una conexion.

Tengo una tabla llamada personas de dos campos, dni y nombre. Arme la connection string en My.Settings y luego en un formulario realice lo siguiente:


Código:
Public Class Form1

    Dim conexion As New OleDb.OleDbConnection(My.Settings.bdConnectionString)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        conexion.Open()
        Dim cm As New OleDb.OleDbCommand("insert into personas (dni, nombre) values (1000000, 'Carlos')", conexion)

        Dim filas As Integer
        filas = cm.ExecuteNonQuery()
        MessageBox.Show(filas)

        conexion.Close()

    End Sub
End Class
Al hacer click en el boton deberia insertar el registro. El messagebox devuelve un 1, lo cual es esperado. Si presiono el boton nuevamente devuelve una excepcion ya que el campo dni es clave y lo esta insertando dos veces y tambien es esperado.

Sin embargo al cerrar el programa el registro no se agrega a la base de datos, tal como si en vez de hacerlo sobre la misma lo hubiera hecho sobre un dataset y luego no lo hubiera actualizado con el data adapter, aunque en este caso no hay ninguno de esos objetos.

¿Alguien sabe que es lo que esta mal? Tengo entendido que se puede hacer de esta manera, es decir ejecutar el command directamente sobre la conexion, pero no funciona.

Muchas gracias por cualquier respuesta.
__________________
Principio Legal Legalidad en la web y Directorio de Software Open Source
Pais Once El lugar donde descubrir una ciudad