P. 1
Ejemplos de ADO NET

Ejemplos de ADO NET

|Views: 5,536|Likes:
Empleando la Base de Datos Northwind ,hay ejemplos empleando el gridview ,combobox , listbox de seleccion multiple , espero que les sea de utilidad , es bastante sencillo .
Ing. Alberto moreno
Universidad Nacional de Ingenieria
Empleando la Base de Datos Northwind ,hay ejemplos empleando el gridview ,combobox , listbox de seleccion multiple , espero que les sea de utilidad , es bastante sencillo .
Ing. Alberto moreno
Universidad Nacional de Ingenieria

More info:

Published by: Alberto Moreno Cueva on Sep 22, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF or read online from Scribd
See more
See less

04/29/2015

pdf

LE NGUA JE D E P ROGR AM AC ION I I

1

1.- L LENAD O UN DA TAGRIDVIEW

morenouni@gmail.com EMPLE ANDO LA BA SE DE DA TOS NOR THWIND DEL SQL SER VER 2005

'---Primero importamos Imports System.Data Imports System.Data.SqlClient Public Class Form1 '----Realizamos la conexion para SQL-2005 Dim cn As New SqlConnection("server=(local);database=northwind; integrated security=true") -------------------------Programamos al Cargar el Formulario-------------------------Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '-------Mediante el SqlDataAdapter extraemos la Data del Sql con la conexión cn Dim da As New SqlDataAdapter("select * from products", cn) Dim dt As New DataTable 'Creamos la tabla virtual (Esta tiene Filas y Columnas) da.Fill(dt) 'lo que capturamos en el DataAdapter llenamos a la tabla virtual dgproductos.DataSource = dt '-------pasamos la tabla Virtual al DatagridView '------CONTANDO Y SUMANDO CAMPOS--------lblfilas.Text = dt.Rows.Count '-----------------Cuenta Filas de la tabla lblsuma.Text = dt.Compute("sum(unitprice)", "")'-Suma el campo UNITPRICE

LE NGUA JE D E P ROGR AM AC ION I I

2

'NOTA : PARA LLENAR UN DATAGRIDVIEW SOLO LO LLENAMOS CON DATASOURCE End Sub -----------------------------------------------------------------End Class 2.-

LL ENADO UN LISTB

OX Y COM BOB OX

'---Primero importamos morenouni@gmail.com Imports System.Data Imports System.Data.SqlClient Public Class Listbox_Combo '----Realizamos la conexion para SQL-2005 '----Realizamos la conexion para SQL-2005 Dim cn As New SqlConnection("server=(local);database=northwind; integrated security=true") '-------------------------Programamos al Cargar el Formulario---------------------Private Sub Listbox_Combo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim da As New SqlDataAdapter("select * from categories", cn) Dim dt As New DataTable '--creamos la tabla virtual (Esta tiene Filas y Columnas) da.Fill(dt) 'lo que capturamos en el DataAdapter llenamos a la tabla virtual '--------------Llenamos el Combobox------------cbocategorias.DataSource = dt 'pasamos la tabla al ComboBox cbocategorias.DisplayMember = "categoryname" '---Campo a Visualizar

LE NGUA JE D E P ROGR AM AC ION I I

3

cbocategorias.ValueMember = "categoryid" '---Campo a capturar internamente '--------------Llenamos el ListBox------------lstcategorias.DataSource = dt lstcategorias.DisplayMember = "categoryname" lstcategorias.ValueMember = "categoryid" 'NOTA : PARA LLENAR UN COMBOBOX Y LISTBOX SON LAS MISMAS PROPIEDADES '.DataSource '---Cargamos '.DisplayMember '---Campo a Visualizar '.ValueMember '---Campo a capturar internamente End Sub -------------------------------------------------------------------End Class 3.- LL ENADO DE UN DA TAGRIDVIEW MEDIANTE UN COMB O

morenouni@gmail.com Imports System.Data Imports System.Data.SqlClient Public Class Combo_Datagrid -------------------------------------------------------------------------------------Dim cn As New SqlConnection("server=(local);database=northwind;integrated security=true") '--------------AL CARGAR EL FORMULARIO SE LLENE EL COMBO-----------------------Private Sub Combo_Datagrid_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim da As New SqlDataAdapter("select * from categories", cn) Dim dt As New DataTable da.Fill(dt) cbocategorias.DataSource = dt

LE NGUA JE D E P ROGR AM AC ION I I

4

cbocategorias.DisplayMember = "categoryname" '---Campo a Visualizar cbocategorias.ValueMember = "categoryid" '---Campo a capturar internamente End Sub -------------------------------------------------------------------------------------'-------------ESTE EVENTO OCURRE CADA VEZ QUE ELEGIMOS UN VALOR EN EL COMBO-------Private Sub cbocategorias_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbocategorias.SelectedIndexChanged Dim cat As Integer 'Capturamos el valor interno del Combo categoryid que esta en su "VALUEMEMBER", te 'acuerdas..pero con la propiedad SelectedValue.ToString lo recibe como cadena; 'Val=convierte a entero cat = Val(cbocategorias.SelectedValue.ToString) 'Luego esta variable la concatenamos con nuestra sentencia en el SqlDataAdapter 'Podria quedar asi:select productname,categoryid from products where categoryid = 2 Dim da As New SqlDataAdapter("select productname,categoryid from products where categoryid=" & cat, cn) Dim dt As New DataTable da.Fill(dt) dgproductos.DataSource = dt End Sub --NOTA: PODRÍAS REEMPLAZAR ESE COMBO POR UN LISTBOX, TE ACUERDAS QUE TIENEN CASI LAS -MISMA PROPIEDADES----------------------------------------------------------End Class

4.- CAPTURAR EL

V ALOR DE UN

DATAGRID P ARA LLEN AR OTRO DA TAGRID

LE NGUA JE D E P ROGR AM AC ION I I

5

morenouni@gmail.com

Public Class DATAGRID_DATAGRID -------------------------------------------------------------------------------------Private Sub DATAGRID_DATAGRID_Load(…)Handles MyBase.Load Dim da As New SqlDataAdapter("SELECT ORDERID,CUSTOMERID,ORDERDATE FROM ORDERS", cn) Dim dt As New DataTable da.Fill(dt) dgordenes.DataSource = dt End Sub -------------------------------------------------------------------------------------Private Sub dgordenes_CurrentCellChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgordenes.CurrentCellChanged Try '-----------capturamos los valores del Datagrid-----------'dgordenes.Item(columna,fila).Value  Captura el valor de tal fila y columna 'dgordenes.CurrentCell.RowIndex = Posición de fila en la que estoy lblorden.Text = dgordenes.Item(0, dgordenes.CurrentCell.RowIndex).Value.ToString() lblcliente.Text = dgordenes.Item(1, dgordenes.CurrentCell.RowIndex).Value lblfecha.Text = dgordenes.Item(2, dgordenes.CurrentCell.RowIndex).Value.ToString() '-------------------------------------------------------------Dim sql As String,orderid As Integer '--------capturamos el item del la columna 0 (seria el campo ORDERID)

LE NGUA JE D E P ROGR AM AC ION I I

6

orderid = Val(dgordenes.Item(0, dgordenes.CurrentCell.RowIndex).Value.ToString()) sql = "SELECT * FROM [ORDER DETAILS] WHERE ORDERID=" & orderid Dim da As New SqlDataAdapter(sql, cn) Dim dt As New DataTable da.Fill(dt) dgdetalle.DataSource = dt Catch ex As Exception End Try End Sub End Class

5.- Colocar en un listbox todos los numeros de pedidos , luego al seleccionar en forma multiple los pedidos va mostrar su detalle en un gridview

morenouni@gmail.com Imports System.Data Imports System.Data.SqlClient Public Class Form4 Dim cn As New SqlConnection("server=(local);database=northwind;integrated security=true") 'Para SQL2005 'Dim cn As New SqlConnection("server=(local);database=northwind;uid=sa") 'Para SQL2000 ------------------------------------------------------------------------------Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

LE NGUA JE D E P ROGR AM AC ION I I

7

Dim DA As New SqlDataAdapter("SELECT ORDERID FROM ORDERS", cn) Dim DT As New DataTable DA.Fill(DT) ListBox1.DataSource = DT ListBox1.DisplayMember = "ORDERID" ListBox1.ValueMember = "ORDERID" End Sub ------------------------------------------------------------------------------Private Sub BTNMOSTRAR_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNMOSTRAR.Click Dim I As Integer, codigos As String = "" Try For I = 0 To ListBox1.Items.Count - 1 ' If ListBox1.GetSelected(I) = True Then 'Pregunto si el elemento esta seleccionado Si es asi lo alamaceno con la propiedad Items(FILA)(COLUMNA) codigos = codigos + Me.ListBox1.Items(I)(0).ToString() + "," End If Next codigos = codigos.Substring(0, codigos.Length - 1) 'Elimina la ultima , Dim cadsql As String = "" cadsql = "SELECT OD.ORDERID,ORDERDATE,UNITPRICE,QUANTITY," & _ "TOTAL=(UNITPRICE*QUANTITY)FROM ORDERS O,[ORDER DETAILS] OD " & _ "WHERE(O.ORDERID = OD.ORDERID)AND O.ORDERID IN (" & codigos & ")" 'MessageBox.Show(cadsql) Para verificar que valores me toma Dim DA As New SqlDataAdapter(cadsql, cn) Dim DT As New DataTable DA.Fill(DT) DGPEDIDOS.DataSource = DT Catch ex As Exception MessageBox.Show(ex.Message) End Try End Sub ------------------------------------------------------------------

LE NGUA JE D E P ROGR AM AC ION I I

8

6.-TABL AS TEM POR ALES Permite n ma ntener e n mem oria u n con junto de datos similar a u na ta bla (filas y column as) y a través de sus pr opied ades rea lizar las oper aciones de mante nimiento

morenouni@gmail.com

Imports System.Data Public Class Form1 Dim tabla As New DataTable 'Creo la tabla Dim fila As DataRow 'Instancio una Fila
-----------------------------------------------------------------

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Asi se agrega columnas a un datatable Dim MiColumna As New DataColumn MiColumna.ColumnName = "Codigo" MiColumna.DataType = GetType(Integer) tabla.Columns.Add(MiColumna) With tabla '.Columns.Add("Codigo", GetType(Integer)) .Columns.Add("Nombre", GetType(String)) .Columns.Add("Edad", GetType(Integer)) End With 'DEFINIMOS LA CLAVE PRINCIPAL QUE ESTA EN EL CODIGO 'ESTO ES PARA DEFINIR QUE EL CODIGO NO SE REPITA AL AGREGAR tabla.Constraints.Add("clave", MiColumna, True) 'POR ESO VA UN CONSTRAINT Me.dgdatos.DataSource = tabla End Sub
--------------------------------------------------------------------------------

LE NGUA JE D E P ROGR AM AC ION I I
Private Sub btnadd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnadd.Click '-----------Validamos que el campo txtcodigo no este vacio-----------If Me.txtcodigo.Text = "" Then txtcodigo.Focus() MsgBox("Ingrese Codigo", MsgBoxStyle.Critical, "Advertencia") Exit Sub 'Sale del SUB End If '-----------Validamos que el campo no sea numerico ------------------If IsNumeric(Me.txtnombre.Text) Then txtnombre.Focus() MsgBox("Nombre Invalido", MsgBoxStyle.Critical, "Advertencia") Exit Sub End If '-----------Y la validacion para la EDAD,....Tu lo Puedes hacer no. fila = tabla.Rows.Find(Me.txtcodigo.Text) 'BUSCA EL CODIGO EN LA TABLA POR LA CLAVE PRINCIPAL(CODIGO)Y SI NO LO ENCUENTRA ENTONCES QUE LO AGREGUE If fila Is Nothing Then fila = tabla.NewRow 'Crea una nueva Fila en la Tabla fila.Item(0) = Val(Me.txtcodigo.Text) 'Asigna el txtcodigo en la nueva fila y Columna 0 fila.Item(1) = Me.txtnombre.Text 'Para la Columna 1 fila.Item(2) = CDbl(Me.txtedad.Text) 'Para la Columna 2 tabla.Rows.Add(fila) 'Agrega una fila a la Tabla y este a la Vez Actualiza el DGDATOS End If End Sub
--------------------------------------------------------------------------------

9

Private Sub btneliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btneliminar.Click Dim Posicion% Posicion = Me.dgdatos.CurrentRow.Index() 'Capturamos la posicion en la que estoy en el DGDATOS tabla.Rows.RemoveAt(Posicion) 'Elimina en esa Posicion End Sub
--------------------------------------------------------------------------------

Private Sub btnmodif_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnmodif.Click Try 'BUSCA EL TXTCODIGO EN LA TABLA PARA MODIFICARLO fila = tabla.Rows.Find(Me.txtcodigo.Text) If Not fila Is Nothing Then fila.BeginEdit() 'EMPIEZA LA MODIFICACION 'fila.Item(0) = Val(Me.txtcodigo.Text) 'Ya no Editamos el Codigo fila.Item(1) = Me.txtnombre.Text fila.Item(2) = CDbl(Me.txtedad.Text) fila.EndEdit() 'TERMINA LA MODIFICACION Else MsgBox("Ese Codigo no Existe Para ser modificado", MsgBoxStyle.Critical, "Advertencia") End If Catch ex As Exception End Try End Sub
--------------------------------------------------------------------------------

LE NGUA JE D E P ROGR AM AC ION I I
Private Sub dgdatos_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgdatos.CurrentCellChanged Try 'Capturamos los Datos del DATAGRID y lo pasamos a los textos Me.txtcodigo.Text = Me.dgdatos.Item(0,Me.dgdatos.CurrentRow.Index()) .Value.ToString() Me.txtnombre.Text = Me.dgdatos.Item(1,Me.dgdatos.CurrentRow.Index()) .Value.ToString() Me.txtedad.Text = Me.dgdatos.Item(2,Me.dgdatos.CurrentRow.Index()) .Value.ToString() Catch ex As Exception End Try End Sub
--------------------------------------------------------------------------------

10

Private Sub btnsumar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsumar.Click Dim I%, Suma# 'Recorro la TABLA y sumo solo los datops de la COLUMNA 2 (EDADES) For I = 0 To tabla.Rows.Count - 1 Suma += tabla.Rows(I)(2) Next MsgBox("Total Suma " & Suma, MsgBoxStyle.Information, "Total de Edades") End Sub End Class

7.- LLAM AR A UN A VENT ANA DE AYUD A Empl eand o una ventana como ayu da, p ara la selección d e un có digo.

LE NGUA JE D E P ROGR AM AC ION I I

11

CODIFICACION DEL FORMULARIO 1 Public Class Form1 Private Sub txtcodigo_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtcodigo.KeyDown 'Si se Presiono la Tecla F5 se llama a la ventana de Ayuda If e.KeyCode = Keys.F5 Then Dim Xayuda As New Form2 'Instanciar al Formulario de esta manera ' puedo acceder a las variables que estan declarados en el Form3 Xayuda.ShowDialog() Me.txtcodigo.Text = Xayuda.codigo Me.txtnombre.Text = Xayuda.nombre End If End Sub End Class ------------------------------------------------------------------

CODIFICACION DEL FORMULARIO 2 Imports System.Data Imports System.Data.SqlClient Public Class Form2 Dim cn As New SqlConnection("server=(local);database=northwind;integrated security=true") 'Para SQL2005 'Dim cn As New SqlConnection("server=(local);database=northwind;uid=sa") 'Para SQL2000 Dim DV As DataView 'Instancio una VISTA Public codigo As String Public nombre As String

LE NGUA JE D E P ROGR AM AC ION I I

12

------------------------------------------------------------------------------Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim DA As New SqlDataAdapter("Select employeeid,lastname from employees", cn) Dim DS As New DataSet DA.Fill(DS) DV = DS.Tables(0).DefaultView 'El DATASET lo pasamos al DATAVIEW DataGridView1.DataSource = DV.Table() End Sub ------------------------------------------------------------------------------Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick 'Depende la posicion que esta el puntero, capturo el codigo y nombre codigo = Me.DataGridView1.Item(0, DataGridView1.CurrentRow.Index()) .Value.ToString() nombre = Me.DataGridView1.Item(1, DataGridView1.CurrentRow.Index()) .Value.ToString() Me.Close() End Sub ------------------------------------------------------------------------------Private Sub txtfiltro_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtfiltro.TextChanged 'SE ELIGE UN DATAVIEW POR QUE CON ESTE OBJETO SE PUEDE HACER FILTROS COMO ORDENAMIENTOS Y DEMAS OPERACIONES DV.RowFilter = "lastname like '%" & txtfiltro.Text & "%'" 'Empiezo a filtrar por el Nombre End Sub End Class

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->