Vous êtes sur la page 1sur 12

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 9

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

--------------------------------------------------------------------------------
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 10

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

--------------------------------------------------------------------------------
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

Vous aimerez peut-être aussi