Está en la página 1de 17

Profesor: Csar Robles Melndez

Visual Basic .Net

PREPARAR UNA APLICACIN PARA ADO .NET 1. Hacer referencia a la biblioteca System.Data.dll Una forma de verificar la referencia a esta biblioteca es expandiendo los elementos de Referencia en el explorador de soluciones:

Explorador de soluciones

Si no se visualiza Referencias, haga clic en el botn Mostrar todos los archivos

Al expandir los elementos de Referencias, haciendo clic en el signo mas (+) de Referencias, se visualizan las bibliotecas activas para la aplicacin:

Si no se est haciendo referencias a la biblioteca System.Data, como se muestra a continuacin:

Pgina 1 de 17

Tercera Semana

Profesor: Csar Robles Melndez Haga clic derecho en la palabra Referencias y elija: Agregar referencia.

Visual Basic .Net

Al hacer clic en Agregar referencia, se visualiza la siguiente ventana:

En esta ventan, busque y seleccione System.Data y luego haga clic en el botn Aceptar. Observar que la biblioteca, ya forma parte de la aplicacin:

2. Importar a la aplicacin los espacios de nombres. En las aplicaciones de Ado .Net donde se van a crear y utilizar los objetos de acceso a datos se debe importar el espacio de nombre llamado: System.Data. El espacio de nombre System.Data contiene todas las clases principales para acceder a una base de datos desde una aplicacin. Los otros espacios de nombres que deben importar a una aplicacin dependen de proveedor de datos que deseas utilizar en Ado .Net y pueden ser:

Pgina 2 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

System.Data.SQLCliente Este espacio de nombre contiene las clases para el proveedor de datos de SQL Server. Esto quiere decio que si tu base de datos est creada en SQL Server, debes importar a tu aplicacin este espacio de nombre. System.Data.OleDb Este espacio de nombre contiene las clases del proveedor de datos OleDb y lo puedes usar cuando tu base de datos se encuentra por ejemplo en Microsoft Access o Excel. System.Data.Odbc Este espacio de nombre contine las clases del proveedor de datos OleDb. System.Data.OracleClient Este espacio de nombre contiene las clases del proveedor de datos para bases de datos Oracle. Las clases que contienen cada uno de estos espacios de nombres se explican ms adelante. Para importar un espacio de nombre a una aplicacin, debes ingresar a la ventna de cdigo del formulario:

Cuando se visualiza una ventana, debes ubicarte en la seccin de declaracin del formulario y utilizando Imports, debes importar los espacios de nombres requeridos en la aplicacin. En la siguiente ventana se est importando a la aplicacin los espacios de nombres para utilizar una base de datos de SQL Server.

Si al escribir Imports System, no se visualiza Data, como se muestra a continuacin:

Pgina 3 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

Verifique que su aplicacin tenga referencia a la biblioteca System.Data en el explorador de soluciones.

Una vez que ha importado el espacio de nombre dentro de su aplicacin como se muestra en la siguiente ventana:

Ya puedes utilizar los objetos del proveedor de datos que ha elegido segn el espacio de nombre importado. Por ejemplo, si ha importado el espacio de nombre System.Data.SqlClient debers utilizar en tu aplicacin los objetos para el proveedor de datos de SQL Server. Los objetos de Ado .Net para una base de datos SQL Server son: SQLConnection Permite una conexin a la base de datos SQL Server. SQLCommand Permite enviar comandos de SQL a la base de datos. SQLDatareader Permite leer informacin de una base de datos de slo lectura y hacia delante en forma secuencial y muy rpida. Pgina 4 de 17 Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

SQLDataAdpater Permite llenar un DataSet y realiza las actualizaciones en la base de datos. EL OBJETO SQLCONNECTION El objeto SQLConnection es uno de los objetos fundamentales que tiene la tecnologa Ado .Net porque gracias a este objeto nos podemos conectar a una base de datos SQLServer para utilizarla en nuestra aplicacin. Este objeto tiene una propiedad principal llamada ConnectionString donde se escribe la informacin necesaria para realizar la conexin a la base de datos, esta depende del tipo de base de datos a la que nos queremos conectar y utilizar en nuestra aplicacin, es decir, al tipo de proveedor de los datos. Cada uno de los proveedores de datos tiene sus objetos para realizar la conexin a la base de datos. La cadena e conexin es la informacin que se asigna a la propiedad ConnectionString y se forma bsicamente por los siguientes parmetros que van separados por un punto y coma. Provider Se utiliza para indicar el nombre del proveedor de datos. El proveedor de datos es el programa desde donde vas a obtener la informacin que vas a manejar en tu aplicacin y puede ser: SQL, Access, MySQL, Oracle, etc. DataSource Se utiliza para indicar el nombre del servidor donde se encuentra la base de datos a conectarse. El servidor es la computadora donde se ha instalado por ejemplo el SQL Server. En los objetos SQLConnection se puede utilizar tambin el parmetro Server. Inicial Catalog Se utiliza para indicar el nombre de la base de datos a la cual nos queremos conectar. En los objetos SQLConnection se puede utilizar tambin el parmetro DataBase. User ID Se utiliza para indicar el nombre del usuario que se conecta a la base de datos. Pwd Se utiliza para indicar la clave del usuario que esta conectndose a la base de datos. Integrated Security Permite indicar si la conexin a la base de datos va a tener seguridad integrada, es decir, si dentro de la cadena de conexin se va a especificar el Id del usuario y sus contrasea. Cuando le asignamos el valor False a este parmetro de conexin, se debe especificar el Id del usuario y su contrasea. Cuando le asignamos el valor True significa que no vamos a indicar el Id del usuario ni su contrasea. En este caso, SQL Server utiliza los datos nombre de usuario y contrasea que ingresaste al iniciar Window.

Pgina 5 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

El valor SSPI es el valor recomendado para este parmetro porque es similar al valor True e indica que se va a utilizar autenticacin Windows. Persiste Security Info Se utiliza dentro de la cadena de conexin para indicar si la informacin se seguridad, como la contrasea del usuario, se devuelve como parte de la cadena de conexin. Se recomienda asignarle el valor False o No, para evitar el envi de la informacin de seguridad. Connect Timeout Se utiliza en la cadena de conexin para indicar la cantidad de segundos que debe durar el intento de conexin a la base de datos, Si transcurre la cantidad de segundos y la aplicacin no se conecta a la base de datos, se produce un error. La cantidad de segundos predeterminado es 15. CONEXIN A UNA BASE DATOS SQL SERVER Los siguientes pasos son un ejemplo de cmo conectarse a una base de datos SQL Sever. La base de datos se llama Pubs. 1. Importar los espacios de nombre:

2. Crear en una variable una instancia de la clase SQLConnection. En el siguiente ejemplo se utiliza la variable Cn: Dim Cn As New SqlConnection() 3. Asignar a la variable la cadena de conexin utilizando su propiedad ConnectionString. El siguiente ejemplo se conecta a la base de datos Pubs del servidor Local y con autenticacin Windows:
Cn.ConnectionStrig= (Server=(Local);DataBase=Pubs;Integrated Security=SSPI)

Los pasos anteriores tambin se pueden desarrollar en uno slo.


Dim Cn As New SqlConnection (Server=(Local);DataBase=Pubs;Integrated Security=SSPI)

4. Abrir la conexin utilizando el mtodo Open. Ejemplo: Cn.Open() 5. Realizar las transacciones que se desean en la base de datos.

Pgina 6 de 17

Tercera Semana

Profesor: Csar Robles Melndez 6. Cerrar la conexin utilizando el mtodo Close. Ejemplo: Cn.Close()

Visual Basic .Net

Si existe un error en la conexin a la base de datos, por ejemplo, no existe la base de datos indicada, se produce una excepcin, es decir, un error y se muestra el siguiente mensaje.

Las siguientes instrucciones se conectan a la base de datos Universidad del servidor Cabina3 con el nombre de un usuario ingresado en TxtUsuario y con la clave ingresada en TxtContrasea. Dim Usuario, Contrasea, Cadena As String Dim Cn As New SqlConnection() Usuario=TxtUsuario.Text.Trim Contrasea=TxtContrasea.Text.Trim Forma la cadena de conexin Cadena=Server=Cabina3;DataBase=Universidad;User Id= & Usuario & ;Pwd= & _ Contrasea Asignar la cadena de conexin Cn.ConnectionString=Cadena Abre la conexin Cn.Open() Cn.Close() MsgBox(La conexin se realiz con xito,64,Felicitaciones) MTODO READ La forma de acceder a la informacin de un SQLDataReader es utilizando su mtodo llamado Read. Este mtodo permite avanzar al siguiente registro del contenido de un objeto SQLDataReader. Normalmente se utiliza un bucle con While para recorrer todo el objeto SQLDataReader.

Pgina 7 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

While Dr.Read . . Instrucciones . . End While

Una forma de leer el contenido de una campo en un objeto SQLDataReader, es utilizando el nmero del campo despus del nombre del objeto. Objeto SQLDataReader(Nmero del Campo) Por ejemplo, si se ha creado el siguiente objeto SQLCommand: Dim CmdClientes As New SqlCommand (Select NombreCompaa, Telfono,
Pas From Clientes Order by NombreCompaa", Cn)

Las siguientes instrucciones almacenan en la variable Nomb, el nombre de un Cliente: Nomb=Dr(0) Nomb=Dr(NombreCompaa)

Las siguientes instrucciones muestran el nombre del primer cliente almacenado en el objeto SQLDataReader.

Pgina 8 de 17

Tercera Semana

Profesor: Csar Robles Melndez Ejemplo, si el contenido de la tabla cliente es:

Visual Basic .Net

Se mostrar lo siguiente:

Aplicacin 03 Esta aplicacin permite mostrar los nombres y saldos de deudas de cada uno de los clientes:

La informacin del formulario es el resultado del siguiente contenido de la Tabla Productos.

Pgina 9 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

Esta aplicacin tiene los mismos controles de la aplicacin anterior, pero al control ListBox asgnele el tipo de letra Courier New para que la informacin se visualice en forma ordenada y los costos alineados a la derecha. Instrucciones en: General
Imports System.Data Imports System.Data.SqlClient

Declaraciones

Instrucciones del botn BtnVer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnVer.Click Dim Producto, Dato As String Dim Costo, Precio As Decimal 'Realiza la conexin con la base de datos Dim Cn As New SqlConnection("Server=(Local);DataBase=Nwind;Integrated Security=SSPI") 'Crea el objerto SqlCommand Dim Cmdproductos As New SqlCommand("Select NombreProducto,PrecioUnidad, PrecioUnidad * UnidadesEnExistencia as Costo From Productos", Cn) 'Abre la conexin Cn.Open() 'Define una variable tipo SQLDataReader Dim Dr As SqlDataReader 'Indica el tipo de lectura que har Dr Dr = Cmdproductos.ExecuteReader 'Limpia el ListBox LblProductos.Items.Clear() 'Muestra los ttulos LblProductos.Items.Add("Producto" & Space(38) & "Precio Unidad" & Space(5) & "Costo") 'Muestra los productos, precio y costo While Dr.Read() 'Lee el contenido de los campos Producto = Dr("NombreProducto") Precio = Dr("PrecioUnidad") Costo = Dr("Costo") 'Forma el dato a mostrar Dato = Producto & Space(50 - Len(Producto)) & Precio.ToString("###,##0.00") & Space(10 Len(Precio.ToString("###,##0.00"))) & Space(10 Len(Costo.ToString("###,##0.00"))) & Costo.ToString("###,##0.00") LblProductos.Items.Add(Dato) End While 'Cierra la conexin Cn.Close() End Sub
End Class

Pgina 10 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

El objeto SQLReader tambin tiene una propiedad llamada FieldCount la cual devuelve la cantidad de de campos o columnas que tiene la informacin leda. La siguiente instruccin almacena en la variable F la cantidad de campos que tiene la informacin almacenada en el objeto SQLDataReader llamado Dr. F = Dr.FielCount EL MTODO GETNAME Este mtodo devuelve el nombre de una columna. Se le debe indicar el nmero de la columna, sabiendo que la primera columna tiene el valor cero. Por ejemplo, la siguiente instruccin muestra el nombre del campo N 01 de la informacin que tiene el objeto SQLDataReader llamado Dr. MessageBox.Show(El campo N 01 es: & Dr.GetName(1), Aviso) El resultado de la instruccin anterior podra ser: EL MTODO GETDATATYPENAME Este mtodo devuelve el tipo de dato origen de una columna. Se le debe indicar el nmero de la columna, sabiendo que la primera columna tiene el valor cero. Ejemplo, la siguiente instruccin muestra el tipo de dato del campo N 01. MessageBox.Show(El tipo del campo 1 es: & Dr.GetDataTypeName(1), Aviso) OBJETO SQLDATAREADER El objeto SQLDataReader permite acceder a la informacin de una base de datos diferente a SQL Server. Este objeto necesita la importacin de los espacios de nombre: System.Data y System.Data.SqlClient para conectar a una base de datos diferente a SQL Server.

Para utilizar el objeto SQLDataReader, primero debe de definir una variable de ese tipo, como se muestra a continuacin: Dim Variable As SQLDataReader

Pgina 11 de 17

Tercera Semana

Profesor: Csar Robles Melndez Ejemplo: Dim Dr As SQLDataReader

Visual Basic .Net

Despus de definir la variable, crear el objeto SQLCommand y abrir la conexin, puede llenar el objeto SQLDataReader de la siguiente manera: Variable = Objeto SQLCommand.ExecuteReader Ejemplo: Dr = CmdClientes.ExecuteReader Aplicacin04 Esta aplicacin permite mostrar los nombres que empiezan con las iniciales del Nombre del cliente (NombreCompaa).

Los nombres de visualizan cuando se presiona la tecla Enter despus de escribir las iniciales.

Pgina 12 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

En esta aplicacin se utiliza el objeto SQLDataReader porque los nombres que se leen pertenecen a una tabla llamada Clientes de la Base de Datos Nwind. Controles del formulario: Este formulario est compuesto por una caja de texto llamado TxtIniciales y un contrl ListBox llamado LblNombre.

Importacin de los espacios de nombre System.Data y System.Data.SqlClient para poder acceder a la base de datos Nwind de SQL.

Pgina 13 de 17

Tercera Semana

Profesor: Csar Robles Melndez Instrucciones del evento Keypress del control TxtIniciales:

Visual Basic .Net

Pgina 14 de 17

Tercera Semana

Profesor: Csar Robles Melndez

Visual Basic .Net

* Luego coloca el cdigo anterior sin IF en evento TextChanged del control TxtIniciales

Pgina 15 de 17

Tercera Semana

Profesor: Csar Robles Melndez TAREA

Visual Basic .Net

1. Obtener la suma de la columna PrecioUnidad de la tabla Productos.

2. Suma los precios de los productos por categora.

Pgina 16 de 17

Tercera Semana

Profesor: Csar Robles Melndez 3. Suma los precios de los productos por nombre de categora.

Visual Basic .Net

Pgina 17 de 17

Tercera Semana

También podría gustarte