You are on page 1of 13

LPI: SQL SERVER 2008 /Visual Basic 2008

GESTION CON BASES DE DATOS


ActiveX Data Objects (ADO.NET)
ADO.NET es una tecnologa de acceso a datos que se basa en los objetos ADO (Objetos de Datos ActiveX) anteriores. Es una manera nueva de acceder a los datos construida sobre ADO. ADO.NET utiliza un modelo de acceso pensado para entornos desconectados. Esto quiere decir que la aplicacin se conecta al origen de datos, hace lo que tiene que hacer, por ejemplo seleccionar registros, los carga en memoria y se desconecta del origen de datos. ADO.NET es un conjunto de clases que el usuario utiliza para acceder y manipular orgenes de datos como por ejemplo, una base de datos en SQL Server o una planilla Excel. El modelo de objetos ADO.NET tiene dos componentes centrales: una capa conectada, con clases compuestas por el proveedor de datos .NET y una capa desconectada, cuya raz es DataSet. EL NUEVO MODELO DE DATOS DE MICROSOFT ES ADO.NET ESTE MODELO DESCANSA EN UNA SERIE DE OBJETOS ESPECIALIZADOS QUE FACILITAN EL PROCESAMIENTO DE UNA BASE DE DATOS.

Fuente microsoft.net

El problema es comunicar un programa o aplicacin con una base de datos y ms que comunicar se pretende que el programa o aplicacin realice una serie de procesos y operaciones con la base de datos o mejor aun con el conjunto de tablas que contiene una base de datos. ADO.NET se encuentra en la biblioteca System.Data.dll, y ofrece clases en espacios de nombres bien diferenciados que se explica a continuacin: System.Data: es el espacio de nombres primario. Dentro de este espacio de nombres tenemos un conjunto de clases que representan, digamos, una base de datos virtual, tablas, filas, columnas, relaciones, etc. Sin embargo, ninguna de estas clases ofrece conexin alguna con un origen de datos, sino que simplemente representan los datos en s mismos.

Profesor: Bayona Ramos

Pgina 1

LPI: SQL SERVER 2008 /Visual Basic 2008


System.Data.OleDb: contiene una serie de clases que nos permiten conectarnos con cualquier origen de datos e interactuar con l al tiempo que sirven de "intermediarios" entre el origen de datos y las clases del espacio de nombres System.Data que, segn decamos, no tienen conexin alguna con dicho origen de datos. Las clases de System.Data.OleDb usan OLEDB como tecnologa subyacente. System.Data.SqlClient: contiene clases que permiten interactuar con orgenes de datos SQL Server de un modo mucho ms directo que OLEDB, mejorando el rendimiento para este tipo de origen de datos. Por lo tanto, solamente se pueden utilizar para acceder a bases de datos de SQL Server. El uso de sus clases es prcticamente equivalente al de las que se encuentran en System.Data.OleDb.
Hay 3 espacios de nombres que usted va a importar en un formulario Web si esta usando ADO.NET: System.Data. System.Data.SqlClient. System.Data.OleDb.
Recuerde la sentencia que usa VB.NET para importar el espacio de nombres: Imports System.Data 'Siempre lo va a utilizar Imports System.Data.SqlClient 'Para acceder a SQL Server Imports System.Data.OleDb. 'Para cualquier origen de datos

LAS CLASES BSICAS DE ADO.NET


Las he llamado bsicas porque, realmente, sern el pilar fundamental para casi cualquier aplicacin que tenga que acceder a un origen de datos con unos mnimos requisitos de eficiencia y escalabilidad. Las clases ms importantes del espacio de nombres System.Data son: DataSet: Es la piedra angular del modelo de objetos: Esta clase permite tener en memoria una autntica "base de datos virtual", con sus tablas, relaciones, etc. Un hecho importante es que esta base de datos virtual est total y absolutamente desconectada de cualquier origen de datos fsico y, en consecuencia, siempre se aloja toda entera en la memoria. En otras palabras, puede contener uno o varios conjuntos de filas distintos, que pueden estar o no estar relacionados entre s, pero siempre en la memoria y siempre desconectados del origen de datos. La clase DataSet est dentro del espacio de nombres System.Data. DataTable: un DataTable representa un conjunto de filas y columnas tambin en memoria y desconectado del origen de datos, como el DataSet. Pertenece al espacio de nombres System.Data. La propiedad Tables de un objeto DataSet contiene una coleccin de objetos DataTable, y dicha coleccin es de la clase DataTableCollection. Por otra parte, cada objeto DataTable representa sus filas en la propiedad Rows (de la clase DataRowCollection), siendo cada fila, a su vez, un objeto de la clase DataRow, y sus columnas en la propiedad Columns (de la clase DataColumnCollection), siendo cada columna un objeto de la clase DataColumn. DataRelation: representa una relacin entre dos objetos DataTable. Tambin pertenece al espacio de nombres System.Data. Todas las relaciones que haya en un DataSet se encuentran en la coleccin Relations, de la clase DataRelationCollection.

Profesor: Bayona Ramos

Pgina 2

LPI: SQL SERVER 2008 /Visual Basic 2008


Las clases ms importantes del espacio de nombres System.Data.SqlClient, y sus equivalentes en el espacio de nombres System.Data.OleDb: SqlConnection: su equivalente en OleDb es OleDbConnection. Proporcionan la conexin con el origen de datos y mantiene algunas de sus antiguas propiedades y mtodos, como son ConnectionString, Open y Close. SqlCommand: su equivalente en OleDb es OleDbCommand. Representan procedimientos almacenados o instrucciones SQL que se ejecutan en el origen de datos. SqlParameter: su equivalente en OleDb es OleDbParameter. Representan un parmetro dentro de la coleccin Parameters del objeto SqlCommand u OleDbCommand, segn el caso. La coleccin Parameters de un objeto SqlCommand es de la clase SqlParameterCollection (OleDbParameterCollection en OleDb). SqlDataAdapter: su equivalente en OleDb es OleDbDataAdapter. Es el encargado de llevar a la conexin establecida en el objeto Connection, el comando con los requerimientos deseados y depositar los resultados obtenidos en otro objeto llamado DataSet(conjunto de datos) para poder utilizarlos y/o manipularlos en una aplicacin.Contiene un conjunto de objetos SqlCommand ( OleDbCommand, segn proceda) en sus propiedades SelectCommand, InsertCommand, UpdateCommand y DeleteCommand. Cuando se invoca el mtodo Fill, el DataAdapter rellena un objeto DataSet o DataTable con el conjunto de filas resultante de ejecutar el comando establecido en su propiedad SelectCommand. Cuando se invoca el mtodo Update, el DataAdapter ejecuta el comando establecido en su propiedad InsertCommand para aadir al origen de datos las filas nuevas aadidas a un DataTable, el comando UpdateCommand para modificar las filas que hayan sido modificadas en el DataTable y el comando DeleteCommand para eliminar las filas que hayan sido eliminadas en el DataTable. Por lo tanto, el DataAdapter es el nexo que une los objetos DataSet y DataTable, totalmente desconectados, con el origen de datos fsico. Si la conexin estaba cerrada antes de ejecutar los mtodos Fill o Update, el DataAdapter se ocupa de abrir dicha conexin para efectuar la operacin requerida, cerrando de nuevo la conexin una vez que ha terminado. Si la conexin estaba abierta, el DataAdapter deja que dicha conexin siga abierta despus de haber terminado.

Resumiendo
Objetos de Proveedores de Datos .NET Propsito Objeto SQL Server 7.0 Objeto para un origen o 2000 OLEDB

Connection Command DataReader

DataAdapter

Provee conectividad a un Origen de Datos Provee acceso a comandos de Base de Datos como Select, Delete, Insert y Update Provee acceso a datos de solo lectura Utiliza el objeto Connection para enlazar un objeto DataSet con un Proveedor de Datos. Tambin permite actualizar los Datos en el origen a partir de las modificaciones hechas en el DataSet.

SqlConnection SqlCommand SqlDataReader

OleDBConnection OleDBCommand OleDBDataReader

SqlDataAdapter

OleDBDataAdapter

Profesor: Bayona Ramos

Pgina 3

LPI: SQL SERVER 2008 /Visual Basic 2008

Un DataSet guarda informacin en un entorno desconectado. Despus de que usted establece una conexin con una Base de Datos entonces puede acceder a sus datos. El DataSet es la principal forma de guardar datos cuando usted utiliza ADO.NET El DataSet permite a usted guardar datos que se obtuvieron de un origen de datos. Los datos en un DataSet pueden ser manipulados sin necesidad que el formulario Web mantenga la conexin con el origen de datos. La conexin se reestablece recin cuando usted necesita actualizar los cambios

Los datos siempre viajan en formato XML ASP.NET y ADO.NET transforman en forma automtica XML en un DataSet.

Profesor: Bayona Ramos

Pgina 4

LPI: SQL SERVER 2008 /Visual Basic 2008


Aplicaciones.- Conexin a la BDD NEPTUNO, en consulta de registros.

Propiedades de los controles del formulario Formulario RadioButton1 Text: COMPONENTES ADO NET Name: RBN1 Position:CenterScreen Text: Mostrar todos los pedidos Button1: RadioButton1 Name : btnConectar Name: RBN2 Text : &Conectar Button2: Text: Clientes con Pedidos Name : btnSalir RadioButton3 Text : &Salir Name: RBN2 Label2: Text: Clientes con Pedidos Name : LBLTOT BorderStyle : Fixed3D Imports System.Data Imports System.Data.sqlclient Public Class Form1 'Cadena de Conexin Dim Cn As New SqlConnection _ ("Server=(Local);DataBase=Neptuno;Integrated Security=True") Private Sub btnConectar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConectar.Click Dim Mensaje As String Try Dim Dt As New DataTable 'Tabla en memoria Dim CadSql$ = "Select * From Clientes" 'Cadena SQL 'Abrir el Adaptador de datos con la cadena SQL Dim Da As New SqlDataAdapter(CadSql, Cn)

Profesor: Bayona Ramos

Pgina 5

LPI: SQL SERVER 2008 /Visual Basic 2008


'LLenar en la Tabla en Memoria con los registros Da.Fill(Dt) Me.DataGridView1.DataSource = Dt 'Mostrar en el Grid Da.Dispose() : Dt.Dispose() 'Liberar los objetos Catch ex As SqlException Select Case ex.Number Case 4060 : Mensaje = "No Existe la Base Datos" Case 17 : Mensaje = "No Tiene Acceso al Servidor" Case 156, 170 : Mensaje = "Error!!!de Sintaxis" Case 208 : Mensaje = "Nombre de Objeto Invalido" Case Else Mensaje = ex.Message End Select
MessageBox.Show(Mensaje, " ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)

End Try End Sub 'PROCEDIMIENTO QUE MUESTRA REGISTROS SQL Public Sub Mostrar(ByVal SqlCad As String) Dim Dt As New DataTable Dim Da As New SqlDataAdapter(SqlCad, Cn) Da.Fill(Dt) Me.DataGridView1.DataSource = Dt Me.LBLTOT.Text = Dt.rows.count End Sub Private Sub RBN1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RBN1.CheckedChanged Dim Cadena$ = "Select * from PEDIDOS" Call Mostrar(Cadena) End Sub Private Sub RBN2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RBN2.CheckedChanged Dim Cadena$ Cadena = "SELECT * FROM PEDIDOS " _ & "WHERE IdCliente IN (SELECT IdCliente FROM CLIENTES) " _ & "ORDER BY IdCliente" Call Mostrar(Cadena) End Sub Private Sub RBN3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RBN3.CheckedChanged Dim STRSQL As String 'Mostrar Facturas por Fechas STRSQL = "SELECT * FROM PEDIDOS " _ & "WHERE FechaPedido BETWEEN '1994/01/01' AND '1995/12/31' " _ & "ORDER BY FechaPedido" Call Mostrar(STRSQL) End Sub End Class

Profesor: Bayona Ramos

Pgina 6

LPI: SQL SERVER 2008 /Visual Basic 2008 EJERCICIO #2: Desarrolle una aplicacin donde se ingrese el Cdigo de un Producto y Muestre el registro del producto ingresado.
Imports System.Data Imports System.Data.sqlclient Public Class Form2 'Cadena de Conexin Dim Cn As New SqlConnection ("Server=(Local);DataBase=Neptuno;Integrated Security=True") Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click 'Buscar el Cdigo del Producto Dim Dt As New DataTable Dim Criterio As String= "" Criterio = "Select IdProducto,NombreProducto,PrecioUnidad, " _ & "UnidadesEnExistencia,IdCategoria FROM productos " _ & "where IdProducto='" & Me.TXTCOD.Text & "'" Dim Da As New SqlDataAdapter(Criterio, Cn) Da.Fill(Dt) Dim Nr As Integer = Dt.Rows.Count 'cANTIDAD DE REGISTROS If Nr > 0 Then Si HAY REGISTROS Me.TXTDES.Text = Dt.Rows(0)(1) ' FILA COL Me.TXTPRE.Text = Dt.Rows(0)(2) Me.TXTSTK.Text = Dt.Rows(0)(3) Me.TXTCAT.Text = Dt.Rows(0)(4) Me.DataGridView1.DataSource = Dt FORMATO_GRID() Else MessageBox.Show("ERROR!!!CODIGO NO EXISTE") End If End Sub 'PERSONALIZAR EL DATAGRIDVIEW Public Sub FORMATO_GRID() With Me.DataGridView1 .Columns(0).HeaderText = "CODIGO" .Columns(0).Width = 30 .Columns(0).ReadOnly = True 'SOLO LECTURA .Columns(0).Frozen = True 'INMOVILIZAR COLUMNAS .Columns(1).HeaderText = "PRODUCTO" .Columns(1).Width = 200 .Columns(1).ReadOnly = True 'SOLO LECTURA .Columns(2).HeaderText = "PRECIO" .Columns(2).Width = 80 .Columns(2).ReadOnly = True 'SOLO LECTURA .Columns(3).HeaderText = "STOCK" .Columns(3).Width = 60 .Columns(3).ReadOnly = True 'SOLO LECTURA .Columns(4).HeaderText = "IDCAT" .Columns(4).Width = 50 .Columns(4).ReadOnly = True 'SOLO LECTURA End With End Sub

Profesor: Bayona Ramos

Pgina 7

LPI: SQL SERVER 2008 /Visual Basic 2008


APLICACION # 3: Realizar una consulta que nos permita visualizar los PEDIDOS de un cliente Seleccionado, al Seleccionar un PEDIDO mostrar en un DataGridView el detalle de los pedidos registrados, el total del detalle se mostrar en una etiqueta. En el ComboBox1 mostrar todos clientes, operar con los campos (IdCliente,NombreCompaia) Al Dar Clic en el ComboBox1 mostrar en el listBox1 los pedidos emitidos por el cliente Seleccionado. Al Dar clic en el ListBox1 mostrar en el DataGridView1 el detalle de los pedidos Seleccionados.

Propiedades de los controles del formulario ComboBox1: Name : CBOCLIENTES ListBox1: Name : LSTPEDIDOS DataGridView1: Name : DGVDETALLE
Imports System.Data Imports System.Data.sqlclient Public Class Frm3_Clientes Dim Cn As New SqlConnection _ ("Server=(local); DataBase=Neptuno; Integrated Security=True") Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try 'Mostrar el nombre de la Categora al cargarse el Form Dim TabCli As New DataTable Dim Sql$ = "Select IdCliente,NombreCompaia from Clientes" Dim Da As New SqlDataAdapter(Sql, Cn) Da.Fill(TabCli) Me.CBOCLIENTES.DataSource = TabCli Me.CBOCLIENTES.DisplayMember = "NombreCompaia" 'CAMPO A DISPLAYAR Me.CBOCLIENTES.ValueMember = "IdCliente" 'CODIGO KEY Da.Dispose() 'LIBERAR OBJETO Catch ex As Exception Messagebox.Show(ex.Message) End Try End Sub

Profesor: Bayona Ramos

Pgina 8

LPI: SQL SERVER 2008 /Visual Basic 2008


Private Sub CBOCLIENTES_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBOCLIENTES.SelectedIndexChanged Try Dim CadSql$ = "Select IdPedido,IdCliente From Pedidos " _ & "Where IdCliente='" & Me.CBOCLIENTES.SelectedValue & "'" Dim Da As New SqlDataAdapter(CadSql, Cn) Dim TabPEDIDOS As New DataTable Da.Fill(TabPEDIDOS) Me.LSTPEDIDOS.DataSource = TabPEDIDOS Me.LSTPEDIDOS.DisplayMember = "IDPEDIDO" Me.LSTPEDIDOS.ValueMember = "IDPEDIDO" Me.LBLCAN.Text = TabPEDIDOS.Rows.Count 'CANTIDAD DE PEDIDOS Da.Dispose() 'LIBERAR OBJETO Catch ex As Exception End Try End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LSTPEDIDOS.SelectedIndexChanged Try Dim Sql$ = "Select IdPedido,IdProducto,PrecioUnidad,Cantidad,PrecioUnidad*Cantidad as Importe from [Detalles de Pedidos] " _ & "Where Idpedido='" & Me.LSTPEDIDOS.SelectedValue & "'" Dim Da As New SqlDataAdapter(Sql, Cn) Dim TABDETALLE As New DataTable Da.Fill(TABDETALLE) Me.DGVDETALLE.DataSource = TABDETALLE Me.LBLTOT.Text = TABDETALLE.Compute("SUM(IMPORTE)", "") Da.Dispose() TABDETALLE.Dispose() Catch ex As Exception End Try End Sub Private Sub BtnSig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSig.Click Dim FRM As New Frm4_Empleados 'INSTANCIAR AL FORMULARIO EMPLEADOS Me.Hide() 'OCULTAR EL FORMULARIO ACTUAL FRM.Show() 'MOSTRAR EL FORMULARIO EMPLEADOS End Sub End Class EJERCICIO #4: Realice una Consulta consulta donde seleccione todos los PROVEEDORES en una DataGridView1, luego al seleccionar un Proveedor muestre todos los productos registrados en otro DataGridView2

DGVPROV

DGVPROD

Profesor: Bayona Ramos

Pgina 9

LPI: SQL SERVER 2008 /Visual Basic 2008


Imports System.Data Imports System.Data.sqlclient Public Class Frm2_Proveedores Dim Cn As New SqlConnection _ ("Server=(local);DataBase=NEPTUNO;Integrated Security=True") Private Sub Frm2_Proveedores_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Dim CadSql$ = "SELECT IdProveedor, NombreCompaia, Pais " _ & " FROM PROVEEDORES" Dim TabProv As New DataTable Dim Da As New SqlDataAdapter(CadSql, Cn) Da.Fill(TabProv) Me.DGVPROV.DataSource = TabProv Da.Dispose() Catch ex As Exception MessageBox.Show("Error!!!" & ex.Message) End Try End Sub Private Sub DGVPROV_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGVPROV.CurrentCellChanged Try Dim IdCodigo As Integer = Me.DGVPROV(0, Me.DGVPROV.CurrentCell.RowIndex).Value Dim Sql$ = "SELECT IdProducto,NombreProducto,IdProveedor,PrecioUnidad FROM PRODUCTOS " _ & " WHERE IdProveedor='" & IdCodigo & "'" Dim TabProd As New DataTable Dim Da As New SqlDataAdapter(Sql, Cn) Da.Fill(TabProd) Me.DGVPROD.DataSource = TabProd Me.LBLCAN.Text = TabProd.Rows.Count Catch ex As Exception End Try End Sub Private Sub BtnSig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSig.Click Dim FRM As New Frm3_Clientes 'INSTANCIAR AL FORMULARIO PROVEEDORES Me.Hide() 'OCULTAR EL FORMULARIO CATEGORIAS FRM.Show() 'MOSTRAR EL FORMULARIO PROVEEDORES End Sub End Class

Profesor: Bayona Ramos

Pgina 10

LPI: SQL SERVER 2008 /Visual Basic 2008

MANEJO DEL SqlDataAdapter y DataSet


5.- Realice una Consulta que permita mostrar en un ComboBox1, el nombre del empleado de la tabla EMPLEADOS, al seleccionar un empleado en el comboBox1 mostrar todos los pedidos del empleado seleccionado, as como la foto del empleado.

Imports System.Data Imports System.Data.SqlClient Imports System.io

Public Class Frm4_Empleados Dim DS As New DataSet 'CREACION DEL OBJETO DE LA CLASE DATASET Private Sub Frm5_Empleados_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try Dim SQL$ = "Select IdEmpleado, Apellidos from Empleados" Dim Da As New SqlDataAdapter(SQL, CN) Da.Fill(DS, "TabEmp") Me.CBOEMP.DataSource = DS.Tables("TabEmp") Me.CBOEMP.DisplayMember = "Apellidos" Me.CBOEMP.ValueMember = "IdEmpleado" Catch ex As Exception End Try

End Sub Private Sub CBOEMP_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBOEMP.SelectedIndexChanged
Try Dim SQl$ = "Select * from pedidos " _ & "Where IdEmpleado='" & Me.CBOEMP.SelectedValue & "'" DS = New DataSet 'Instanciar el dataset Dim Da As New SqlDataAdapter(SQl, CN) Da.Fill(DS, "TabPedidos") Me.DataGridView1.DataSource = DS.Tables("TabPedidos") Me.LBLTOT.Text = DS.Tables("TabPedidos").Rows.Count 'cantidad 'Mostrar la Imagen Grfica Dim Cad$ = "Select Foto from Empleados where IdEmpleado='" & _ Me.CBOEMP.SelectedValue & "'" Dim TblG As New DataTable Dim dat As New SqlDataAdapter(Cad, CN) dat.Fill(TblG) Dim Bits As Byte() = CType(TblG.Rows(0)("foto"), Byte()) Dim Offset As Integer = 78 Dim Ms As New MemoryStream Ms.Write(Bits, Offset, Bits.Length - Offset) 'Grabar el Picture Dim Bitmap As New Bitmap(Ms) Ms.Close() Me.PicImagen.SizeMode = PictureBoxSizeMode.StretchImage Me.PicImagen.Image = Bitmap Catch ex As Exception End Try

End Sub End Class

Profesor: Bayona Ramos

Pgina 11

LPI: SQL SERVER 2008 /Visual Basic 2008 DataView (Clase): Representa una vista personalizada que puede enlazar datos de un DataTable para
ordenacin, filtrado, bsqueda, edicin y exploracin. Espacio de nombres: System.Data

Imports System.Data Imports System.Data.SqlClient Public Class FrmClientes Dim Cn As New SqlConnection("Server=(local)\sqlExpress;DataBase=Neptuno;Integrated Security=True") Public Function TablaClientes() As DataTable Dim MiTabla As New DataTable Dim Sql$ = "SELECT IdCliente,NombreCompaia,NombreContacto,Ciudad,Pais FROM CLIENTES" Dim Da As New SqlDataAdapter(Sql, Cn) Da.Fill(MiTabla) Return MiTabla End Function Private Sub FrmClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Cuando se carga el formulario a la memoria Try Dim Dt As DataTable = TablaClientes() Me.DGVCLIENTES.DataSource = Dt Catch ex As Exception End Try End Sub Private Sub RBNCOD_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RBNCOD.CheckedChanged Dim MiDataview1 As New DataView 'Crear el objeto que hace referencia al dataview Dim Dt1 As DataTable = Me.TablaClientes() MiDataview1 = Dt1.DefaultView 'Pasar de la tabla a la vista MiDataview1.Sort = "IdCliente" 'Ordenarlo por Cdigo del cliente Me.DGVCLIENTES.DataSource = MiDataview1 'Origen de datos es la Vista Me.LBLTOT.Text = MiDataview1.Count 'CANTIDAD DE REGISTROS End Sub

Profesor: Bayona Ramos

Pgina 12

LPI: SQL SERVER 2008 /Visual Basic 2008


Private Sub RBNClIENTE_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RBNClIENTE.CheckedChanged Dim MiDataview2 As New DataView 'Crear el objeto que hace referencia al dataview Dim Dt1 As DataTable = Me.TablaClientes() MiDataview2 = Dt1.DefaultView MiDataview2.Sort = "NombreCompaia DESC" Me.DGVCLIENTES.DataSource = MiDataview2 Me.LBLTOT.Text = MiDataview2.Count 'CANTIDAD DE REGISTROS End Sub Private Sub RBNPAIS_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RBNPAIS.CheckedChanged Dim MiDataview3 As New DataView 'Crear el objeto que hace referencia al dataview Dim Dt1 As DataTable = Me.TablaClientes() MiDataview3 = Dt1.DefaultView MiDataview3.Sort = "Pais" Me.DGVCLIENTES.DataSource = MiDataview3 End Sub Private Sub txtCli_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCli.TextChanged Try Dim DV As New DataView Dim Criterio = "NombreCompaia LIKE '" & Me.txtCli.Text & "%'" DV = TablaClientes().DefaultView DV.RowFilter = Criterio 'FILTRAR SEGUN CRITERIO Me.DGVCLIENTES.DataSource = DV Formato_Grid() Catch ex As Exception End Try End Sub Public Sub Formato_Grid() Me.DGVCLIENTES.Columns(0).HeaderText = "CODIGO" Me.DGVCLIENTES.Columns(0).Width = 60 Me.DGVCLIENTES.Columns(0).ReadOnly = True Me.DGVCLIENTES.Columns(1).HeaderText = "COMPAIA" Me.DGVCLIENTES.Columns(1).Width = 120 Me.DGVCLIENTES.Columns(1).ReadOnly = True Me.DGVCLIENTES.Columns(2).HeaderText = "CONTACTO" Me.DGVCLIENTES.Columns(2).Width = 120 Me.DGVCLIENTES.Columns(2).ReadOnly = True Me.DGVCLIENTES.Columns(3).HeaderText = "CIUDAD" Me.DGVCLIENTES.Columns(3).Width = 100 Me.DGVCLIENTES.Columns(3).ReadOnly = True Me.DGVCLIENTES.Columns(4).HeaderText = "PAIS" Me.DGVCLIENTES.Columns(4).Width = 100 Me.DGVCLIENTES.Columns(4).ReadOnly = True End Sub End Class

Profesor: Bayona Ramos

Pgina 13

You might also like