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.