Parte de un tutorial en curso. Esta lección es parte de una tutoría continua. El La primera parte está aquí:

Codificando sus propios proyectos de bases de datos VB .NET

En la última sección, aprendiste a moverte a través de los registros en su DataSet, y cómo mostrar los registros en los cuadros de texto en tu forma. En esta lección, veremos cómo agregar nuevos registros, cómo borrarlos y cómo actualizar un registro.

Antes de empezar la codificación de estos nuevos botones, es importante entender que el DataSet está desconectado de la base de datos. Lo que este significa que si estás añadiendo un nuevo registro, no lo estás añadiendo a la base de datos: lo estás agregando al DataSet ! De manera similar, si estás actualizando o borrando, lo haces al DataSet, y NO a la base de datos. Después de que han hecho todos los cambios, entonces los confirman en la base de datos. Lo haces emitiendo un comando separado. Pero veremos cómo funciona todo.

Necesitarás añadir unos cuantos botones más a tu formulario, cinco de ellos. Cambie el Nombra propiedades de los nuevos Botones a los siguientes:

btnAddNew
btnCommit
btnUpdate
btnDelete
btnClear

Cambiar las propiedades de los botones de Texto a Añadir nuevo Grabar , Comprobar cambios , Actualizar registro , Borrar Registro , y Borrar/Cancelar . Tu formulario podría ser algo como esto:

Agregar, actualizar y eliminar registros

Empezaremos con el botón de actualizar el registro.

Actualización de un registro

Para hacer referencia a una columna (artículo) en particular en una fila del DataSet, el código es esto:

ds.Tablas("Libro de direcciones").Filas(2).Artículo(1)

Eso devolverá lo que esté en el punto 1 de la fila 2.

Además de devolver un valor, también puedes fijar un valor. Lo haces así:

ds.Tablas("Libro de direcciones").Filas(2).Artículo(1) = "Jane"

Ahora el punto 1 de la fila 2 contendrá el texto "Jane". Sin embargo, esto no, ¡efectuar la base de datos! Los cambios sólo se harán en el DataSet . A Para ilustrar esto, añade el siguiente código a tu btnUpdate :

ds.Tablas("AddressBook").Filas(inc).Artículo(1) = txtNombreDePrimeraTexto.Texto
ds.Tablas("AddressBook").Filas(inc).Artículo(2) = txtApellido.Texto

MessageBox.Show("Datos actualizados")

Ejecute su programa, y haga clic en el botón Siguiente Registro para pasar al primer disco. "John" debería aparecer en su primer cuadro de texto, y "Smith" en el segundo cuadro de texto. Haga clic dentro de los cuadros de texto y cambie "John" a "Joan" y "Smith" a "Smithy". (Sin las citas). Ahora haz clic en tu botón Actualizar registro . Muévete al siguiente registro haciendo clic en el botón Siguiente registro , y luego volver a el primer disco. Deberías ver que el primer disco es ahora "Joan Smithy".

Cierra tu programa y vuelve a ejecutarlo. Haz clic en el siguiente registro para pasar al primer registro. Seguirá siendo "John Smith". ¡Los datos que actualizaste se han perdido! Así que aquí, de nuevo, está el porqué:

"Los cambios se hacen en el DataSet, y NO en la base de datos"

Para actualizar la base de datos, necesitas un código extra. Modifique su código para esto (el las nuevas líneas están en negrita, texto en rojo):

Dim cb As New OleDb.OleDbCommandBuilder(da)

ds.Tablas("AddressBook").Filas(inc).Artículo(1) = txtNombreDePrimeraTexto.Texto
ds.Tablas("AddressBook").Filas(inc).Artículo(2) = txtApellido.Texto

da.Update(ds, "AddressBook")

MessageBox.Show("Datos actualizados")

La primera línea nueva es esta:

Dim cb As New OleDb.OleDbCommandBuilder(da)

Para actualizar la base de datos en sí, se necesita algo llamado Command Builder . El Command Builder construirá una cadena SQL para ti. Entre corchetes, escribes el nombre de tu adaptador de datos, da en nuestro caso. El constructor de comandos se almacena entonces en una variable, que hemos llamado cb .

La segunda nueva línea es donde está la acción:

da.Update(ds, "AddressBook")

La variable da contiene nuestro adaptador de datos. Uno de los métodos de la El adaptador de datos está actualizado . Entre los paréntesis redondos, se necesita el nombre de su DataSet ( ds , para nosotros). La parte de la " libreta de direcciones " es opcional. Es lo que hemos llamado nuestro DataSet, y está aquí para evitar cualquier confusión.

Pero el adaptador de datos se pondrá en contacto con la base de datos. Porque tenemos un comando Builder, el Adaptador de Datos puede entonces actualizar su base de datos con los valores de el DataSet.

Sin el Constructor de Comando, sin embargo, el Adaptador de Datos no puede hacer su trabajo. Prueba en esto. Comente la línea del Constructor de Comandos (ponga una sola cita antes de la "D" de Dim). Vuelva a ejecutar su programa, y luego intente actualizar un registro. Usted ...recibe este mensaje de error:

Agregar, actualizar y eliminar registros

El error es porque no tienes un constructor de comandos, un comando de actualización válido.
Borre el comentario de su línea de Command Builder y el mensaje de error va ...lejos.

Ahora debería ser capaz de hacer cambios en la propia base de datos (siempre y cuando la La base de datos de acceso no es de sólo lectura).

Pruébalo. Ejecute su programa y cambie uno de los registros. Haz clic en la actualización ...botón. Entonces cierra el programa y vuelve a cargarlo. Deberías ver sus nuevos cambios mostrados en los cuadros de texto.

Ejercicio

Sin embargo, hay un pequeño problema con el código anterior. Intenta hacer clic en la actualización antes de hacer clic en el botón Siguiente Registro . ¿Qué sucede? ¿Sabe usted ¿por qué recibes el mensaje de error? Escriba el código para evitar que esto suceda

En la siguiente parte, veremos cómo añadir un nuevo registro.

Aprenda cómo añadir un registro a la base de datos --;

Espero que te haya sido de ayuda!

Recomendado para ti