You are on page 1of 12

Facultad de Sistemas Taller de Base de Datos II

1.- LLENADO UN DATAGRIDVIEW

morenouni@gmail.com
EMPLEANDO LA BASE DE DATOS NORTHWIND DEL SQL SERVER 2012
'---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 conexin 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

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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

LLENADO UN LISTBOX Y COMBOBOX


'---Primero importamos
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
cbocategorias.ValueMember = "categoryid"
'---Campo a
capturar internamente

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


'--------------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.- LLENADO DE UN DATAGRIDVIEW MEDIANTE UN COMBO

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
cbocategorias.DisplayMember = "categoryname" '---Campo a
Visualizar

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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: PODRAS REEMPLAZAR ESE COMBO POR UN LISTBOX, TE ACUERDAS
QUE TIENEN CASI LAS
-MISMA PROPIEDADES----------------------------------------------------------End Class

4.- CAPTURAR EL VALOR DE UN DATAGRID PARA LLENAR OTRO DATAGRID

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II

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 = Posicin 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)

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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

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

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


6.-TABLAS TEMPORALES
Permiten mantener en memoria un conjunto de datos similar a una tabla (filas y columnas) y a travs
de sus propiedades realizar las operaciones de mantenimiento

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

Private Sub btnadd_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnadd.Click

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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.- LLAMAR A UNA VENTANA DE AYUDA


Empleando una ventana como ayuda, para la seleccin de un cdigo.

CODIFICACION DEL FORMULARIO 1

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

Facultad de Sistemas Taller de Base de Datos II


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

Profesor: Hugo Godoy

Correo: hugogodoy@outlook.es

Claro: 997-253356

You might also like