martes, 15 de septiembre de 2009

Insertar Datos en VB. Net con SQL Server 2005

Para insertar datos vamos a utilizar los objetos "DataAdapter" (SqlDataAdapter y OleDbDataAdapter), los cuales van a desempeñar el papel de puente entre el origen de datos y el "DataSet", permitiéndonos cargar el "DataSet" con la información de la fuente de datos, y posteriormente, actualizar el origen de datos con la información del "DataSet". Un objeto "DataAdapter" puede contener desde una sencilla sentencia SQL, hasta varios objetos "Command". La clase "DataAdapter" dispone de cuatro propiedades, que nos van a permitir asignar a cada una, un objeto "Command" (SqlCommand u OleDbCommand) con las operaciones estándar de manipulación de datos. Estas propiedades son las siguientes.
  • InsertCommand. Objeto de la clase Command, que se va a utilizar para realizar una inserción de datos.
  • SelectCommand. Objeto de la clase Command que se va a utilizar para ejecutar una sentencia Select de SQL.
  • UpdateCommand. Objeto de la clase Command que se va a utilizar para realizar una modificación de los datos.
  • DeleteCommand. Objeto de la clase Command que se va a utilizar para realizar una eliminación de datos.
Un método destacable de las clases SqlDataAdapter/OleDbDataAdapter es el método "Fill( )", que ejecuta el comando de selección que se encuentra asociado a la propiedad "SelectCommand", los datos obtenidos del origen de datos se cargarán en el objeto "DataSet" que pasamos por parámetro. Para ver el uso de los objetos "DataAdapter" vamos a crear un proyecto y lo denominaremos "WAccesoDatos", luego crearemos un formulario y lo llamaremos "frmInsertaDatos", despues agregamos los siguientes controles.


En esta aplicación vamos a utilizar el objeto "DataAdapter", con el que realizaremos una consulta en la tabla "Programa" de la BD "Academico", la cual esta creada dentro del "SQL Server 2005", y donde insertaremos las nuevas filas. Después de agregar los controles que describimos anteriormente, el formulario "frmInsertaDatos" debe de quedar como se muestra a continuación.

Respecto al código del "frmInsertaDatos", en primer lugar, vamos a declarar varios objetos de acceso a datos a nivel de la clase para poder tenerlos disponibles en diversos métodos.


En el siguiente paso escribiremos el procedimiento del evento "Load" del formulario "frmInsertaDatos", el cual mostramos a continuación.


Luego digitamos el método "CargaDatos( )", que se ocupa de cargar el "DataSet", y asignárselo al DataGrid a través de su propiedad "DataSource". Observe que en el método "CargarDatos( )" lo primero que hacemos es vaciar el "DataSet", puesto que este objeto conserva los datos de tablas y registros; en el caso de que no limpiáramos el "DataSet", se acumularían las sucesivas operaciones de llenado de filas sobre la tabla que contiene.

Finalmente, en el botón "Grabar", escribiremos las instrucciones para insertar un nuevo registro en la tabla "Programa", el cual se codificara como se ve a continuación.

Una vez codificado todos los procedimientos ejecutamos la aplicación, la cual vemos en la figura siguiente.


Ahora insertamos un nuevo programa, dentro del formulario ejecutado, el cual vemos a continuación.


PD:

  • Después de crear el proyecto "WAccesoDatos", debemos de agregar las Referencias para poder acceder a los Datos, las cuales son "Microsoft ActiveX Data Objects 2.8 Library" y "Microsoft CDO for Windows 2000 Library".
  • No olvidar que en la línea de código de conexión:
    "Data Source=mario;database=academico; User Id=sa;Password=master"
    En la parte donde se encuentra el nombre del Data Source, debe de ir el nombre de tu servidor de base de datos en este caso, el mío es "mario".
  • Crear una BD llamada "Academico", dentro de la BD crear una tabla "Programa", los campos y tipos de datos de la tabla creada seran los siguientes:
    Programa = char(10)
    Descripción = varchar(50)
    Ambos permiten valores nulos.