Você está na página 1de 118

MANUAL DE VISUAL BASIC

PARTE II




Nombre: Karen Johana Estrada Aguilar

CONSULTAS CON SQL
REPORTING SERVICES
CAJAMARCA, 2012
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

1
I NDI CE
CONSULTAS CON SQL EN VISUAL BASIC ........................................................................ 2
Mostrar el registro de la tabla estudiantes: ................................................................ 4
Realizar el ejercicio anterior en una pgina web: ...................................................... 5
Buscar un alumno filtrado por su cdigo con Radio button: ...................................... 8
Buscar un alumno filtrado por su cdigo con Enter en el Textbox:.......................... 10
Mostrar alumnos o alumnas con radios button ......................................................... 12
UN TOOLsTRIP CON IMGENES ...................................................................................... 15
El menStrip deber estar acompaado de imgenes: .................................................... 15
Creamos un mdulo (Globales) ............................................................................................ 16
AGREGAR UNA CONSULTA A UN LISTBOX .................................................................... 19
EJERCICIOS COMPLEMENTARIOS SOBRE CONSULTAS A BASE DE DATOS
USANDO VISUAL BASIC 2010 ........................................................................................... 32
EJERCICIOS ........................................................................................................................ 47
INSERTAR EN UNA TABLA DE UBA BASE DE DATOS DESDE VISUAL BASIC ........... 59
OBJETO MaskedTextBox ..................................................................................................... 60
CONSULTAR, AGREGAR Y ELIMINAR REGISTROS EN LA TABLA CATEGORAS ...... 69
CREAR IN INICIO DE SESIN PARA EL SISTEMA .......................................................... 79
Cambiar contrasea desde otro formulario ..................................................................... 82
CREANDO EL SISTEMA DE ASISTENCIA DE LOS ALUMNOS DE INGENIERA DE
SISTEMAS A LA XII SEMANA SISTMICA ........................................................................ 85
REPORTING SERVICE ........................................................................................................ 94



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

2
CONSULTAS CON SQL EN VISUAL BASIC


Para hacer una consulta desde Visual Studio a una base de datos hacemos:
Primero creamos una tabla Estudiantes en Sql Sever Managament

Pasamos los registros de los alumnos en un documento Csv (separado por comas),
ejecutando la siguiente consulta:

use Asistencia_Semana_Sistmica
bulk
insert dbo.PARTICIPANTES
from 'I:\alumnos2.csv'
with
(
fieldterminator=',', --separa a los campos, cambia de campo
rowterminator='\n' -- cambia de filas por el enter
)



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

3
CREAMOS UN FORMULARIO EN VISUAL STUDIO
Ponemos la cabecera que funcionara como una biblioteca: Imports
System.Data.SqlClient
Realizamos la conexin a la Base de Datos creando el objeto conex (conex es un objeto
que guarda la ubicacin de la base de datos ya sabe dnde est, es un camino)
Dim conex As New SqlConnection("server=.;database=Northwind;trusted_connection=true")

Hacemos una consulta con SQLDataAadapter
Dim datos As New SqlDataAdapter("select* from EMPLOYEES", conex)

Creamos un objeto DataSet
Dim ds As New Data.DataSet

Llenamos los registros obtenidos por la consulta en un DataGridView
datos.Fill(ds, "Alumnos")
DGV1.DataSource = ds.Tables("Alumnos")

El cdigo en Visual Studio es:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

4


Ejemplo:
Mostrar el registro de la tabla estudiantes:
Imports System.Data.SqlClient
Public Class Form1

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Dim conex As New
SqlConnection("server=MIK3\io;database=Northwind1;trusted_connection=true") 'conex es un
objeto que guarda la ubicacion de la base de datos ya sabe donde esta, es un camino
Dim datos As New SqlDataAdapter("select* from Estudiante", conex)
Dim ds As New Data.DataSet
datos.Fill(ds, "Alumnos")
DGV1.DataSource = ds.Tables("Alumnos")
End Sub
End Class


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

5

Realizar el ejercicio anterior en una pgina web:
1 Creamos un nuevo proyecto y escogemos en planillas instaladas la opcin Web:

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

6
2 Escogemos la opcin Aplicacin web ASP.NET:

3 Se observa el entorno as:

4 Agregamos un nuevo elemento un (Formulario):

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

7

Escogemos un DataGridView y lo arrastramos sobre el formulario:

Escribimos el cdigo:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

8
Carg:

Buscar un alumno filtrado por su cdigo con Radio button:
Consulta SQL:
create proc buscar_alumnos
@id char(10)
as
select *
from Estudiante
where Id_estudiante=@id
Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim conex As New
SqlConnection("server=.;database=Northwind;trusted_connection=true")
Dim datos As New SqlDataAdapter("buscar_alumnos", conex)
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

9
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.SelectCommand.Parameters.Add("@id", SqlDbType.Char, 10).Value =
TextBox1.Text
datos.Fill(ds, "alumnitos")
DGV.DataSource = ds.Tables("Alumnitos")
End Sub
End Class

Diseo del formulario:



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

10
Buscar un alumno filtrado por su cdigo con Enter en el Textbox:
En el evento keypress del textbox hacemos la conexin y el cdigo:

Imports System.Data.SqlClient
Public Class Form2

Private Sub TextBox1_KeyPress(sender As Object, e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress

If e.KeyChar = Chr(13) Then
Dim conex As New
SqlConnection("server=.;database=Northwind;trusted_connection=true")
Dim datos As New SqlDataAdapter("buscar_alumnos", conex)
Dim ds As New Data.DataSet

datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@id", SqlDbType.Char, 10).Value =
TextBox1.Text

datos.Fill(ds, "alumnitos")

DGV.DataSource = ds.Tables("Alumnitos")
TextBox1.Text = ""
TextBox1.Focus()
End If

End Sub

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

11
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
TextBox1.Focus()
End Sub

Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs)
Handles TextBox1.TextChanged
TextBox1.Focus()
End Sub
End Class

Filtrar alumno por apellido:
Imports System.Data.SqlClient
Public Class Form4
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Dim conex As New
SqlConnection("server=MIK3\io;database=Northwind1;trusted_connection=true")
Dim datos As New SqlDataAdapter("apell", conex) ' "selec * from Estudiante where
Id_estudiante=@id" (la linea *** no seria)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

12
datos.SelectCommand.Parameters.Add("@ape", SqlDbType.Char, 10).Value =
TextBox1.Text
datos.Fill(ds, "alumnitos") 'ejecuta el data adapter, que abre la conexion
DGV.DataSource = ds.Tables("alumnitos")
TextBox1.Text = ""
TextBox1.Focus()
End If
End Sub
End Class


Mostrar alumnos o alumnas con radios button
Dim conex1 As New
SqlConnection("server=MIK3\io;database=Northwind1;trusted_connection=true")
If RadioButton1.Checked = True Then
Dim datos As New SqlDataAdapter("sexo", conex1)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.SelectCommand.Parameters.Add("@sex", SqlDbType.Char, 1).Value = 1
datos.Fill(ds, "Alumnos")
DGV.DataSource = ds.Tables("Alumnos")
ElseIf RadioButton2.Checked = True Then

Dim datos1 As New SqlDataAdapter("sexo", conex1)
Dim ds1 As New Data.DataSet
datos1.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos1.SelectCommand.Parameters.Add("@sex", SqlDbType.Char, 1).Value = 2
datos1.Fill(ds1, "Alumnos")
DGV.DataSource = ds1.Tables("Alumnos")
End If

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

13



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

14

En un sistema realizar el mantenimiento en consultas:

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

15
UN TOOLsTRIP CON IMGENES


EN CONSULTA HACEMOS LOS SIGUIENTES FORMULARIO:

El menStrip deber estar acompaado de imgenes:

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

16

Creamos un mdulo (Globales)


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

17
Escribimos el siguiente Cdigo:
Module GLOBALES
Public CONEX As New
System.Data.SqlClient.SqlConnection("server=MIK3\io;database=Northwind1;trusted_connect
ion=true")
End Module

HACEMOS EL PROCEDIMIENTO ALMACENADO:
create PROC consulta1
AS
SELECT CATEGORYNAME, COUNT(*) AS TOTAL
FROM Categories AS C
INNER JOIN Products AS P
ON C.CategoryID=P.CategoryID
GROUP BY CategoryName
ORDER BY CategoryName
EN VISUAL BASIC:
Imports System.Data.SqlClient
Public Class CONSULTA1

Private Sub CONSULTA1_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Dim datos As New SqlDataAdapter("consulta1", CONEX)
Dim DS As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.Fill(DS, "QUERY1")
DGV.DataSource = DS.Tables("QUERY1")
End Sub
End Class



CREATE PROC CONSULTA2
@CATE INT
AS
SELECT
ProductID,ProductName,UnitPrice,UnitsInStock,COMPANYNAME,CategoryID
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

18
FROM Products AS P INNER JOIN Suppliers AS S ON P.SupplierID=S.SupplierID
WHERE CategoryID=@CATE
Imports System.Data.SqlClient
Public Class consulta02
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim datos As New SqlDataAdapter("query2", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@cate", SqlDbType.Int).Value =
ListBox1.SelectedValue

Dim ds As New Data.DataSet
datos.Fill(ds, "query2")
DGV2.DataSource = ds.Tables("query2")
End Sub

Private Sub consulta02_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
'TODO: esta lnea de cdigo carga datos en la tabla 'NorthwindDataSet.Categories'
Puede moverla o quitarla segn sea necesario.
Me.CategoriesTableAdapter.Fill(Me.NorthwindDataSet.Categories)

End Sub
End Class









Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

19
AGREGAR UNA CONSULTA A UN LISTBOX




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

20



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

21




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

22

Asignar los valores correspondientes al listbox

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

23


Consultar entre dos precios.

CREATE PROC CONSULTA3
@ls float,
@li float
AS
SELECT ProductName,UnitPrice,Categoryname,COMPANYNAME
FROM Products AS P INNER JOIN Suppliers AS S ON P.SupplierID=S.SupplierID
inner join Categories as c on P.CategoryID=c.CategoryID
WHERE UnitPrice between @ls and @li
Imports System.Data.SqlClient
Public Class consulta03

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim datos As New SqlDataAdapter("consulta3", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@ls", SqlDbType.Int).Value = TextBox1.Text
datos.SelectCommand.Parameters.Add("@li", SqlDbType.Int).Value = TextBox2.Text
Dim ds As New Data.DataSet
datos.Fill(ds, "query3")
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

24
DGV3.DataSource = ds.Tables("query3")
End Sub
End Class



Consultar productos q empiecen con una determinada letra.

CREATE proc CONSULTAS4
@X NVARCHAR (40)
AS
SELECT ProductName, UnitPrice,CategoryID,SupplierID
FROM Products
WHERE ProductName LIKE @X + '%'
Imports System.Data.SqlClient
Public Class consulta04

Private Sub TextBox1_KeyPress(sender As Object, e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim datos As New SqlDataAdapter("consultas4", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

25
datos.SelectCommand.Parameters.Add("@x", SqlDbType.VarChar).Value = TextBox1.Text

Dim ds As New Data.DataSet
datos.Fill(ds, "query4")
DGV4.DataSource = ds.Tables("query4")
End Sub
End Class



Filtrar por el nombre del producto.

CREATE PROC CONSULTA5
@N INT
AS
SELECT PRODUCTNAME, UNITPRICE,UNITSINSTOCK,SUPPLIERID
FROM Products
WHERE SupplierID=@N
Imports System.Data.SqlClient
Public Class consulta05
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

26
Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim datos As New SqlDataAdapter("consulta5", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@n", SqlDbType.Int).Value =
ListBox1.SelectedValue

Dim ds As New Data.DataSet
datos.Fill(ds, "query5")
DGV5.DataSource = ds.Tables("query5")
End Sub

Private Sub consulta05_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.SuppliersTableAdapter1.Fill(Me.Northwind1DataSet2.Suppliers)
End Sub
End Class


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

27

Filtrar por nmero de orden:
CREATE PROC CONSULTA6
@N INT
AS
SELECT O.OrderID,P.PRODUCTID,P.PRODUCTNAME,P.UNITPRICE,OD.QUANTITY
FROM [Order Details] AS OD INNER JOIN ORDERS AS O ON
O.OrderID=OD.OrderID INNER JOIN PRODUCTS AS P
ON P.ProductID=OD.ProductID
WHERE O.OrderID=@N
Imports System.Data.SqlClient
Public Class consulta06

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim datos As New SqlDataAdapter("consulta6", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@n", SqlDbType.Int).Value = TextBox1.Text


Dim ds As New Data.DataSet
datos.Fill(ds, "query6")
DGV6.DataSource = ds.Tables("query6")
End Sub
End Class



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

28
Con radiobutton mostrar los productos con stock o sin stock.
CREATE PROC CONSULTA7
AS
SELECT PRODUCTiD, PRODUCTNAME,UNITPRICE,UNITSINSTOCK
FROM Products
WHERE UnitsInStock=0

CREATE PROC CONSULTAS7
AS
SELECT PRODUCTiD, PRODUCTNAME,UNITPRICE,UNITSINSTOCK
FROM Products
WHERE UnitsInStock!=0
Imports System.Data.SqlClient
Public Class consulta07

Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As
System.EventArgs) Handles RadioButton1.CheckedChanged
Dim datos As New SqlDataAdapter("consultas7", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "query7")
DGV7.DataSource = ds.Tables("query7")
End Sub

Private Sub RadioButton2_CheckedChanged(sender As System.Object, e As
System.EventArgs) Handles RadioButton2.CheckedChanged
Dim datos As New SqlDataAdapter("consulta7", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "query8")
DGV7.DataSource = ds.Tables("query8")
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

29


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

30
Mostrar los productos discontinuados.

CREATE PROC CONSU8
@N INT
AS
SELECT PRODUCTID, PRODUCTNAME,UNITPRICE,DISCONTINUED
FROM Products
WHERE Discontinued=@N
Imports System.Data.SqlClient
Public Class consulta08
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles CheckBox1.CheckedChanged
Dim datos As New SqlDataAdapter("consu8", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@n", SqlDbType.Bit).Value = CheckBox1.Checked
Dim ds As New Data.DataSet
datos.Fill(ds, "query9")
DGV8.DataSource = ds.Tables("query9")
End Sub
End Class


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

31





Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

32
EJERCICIOS COMPLEMENTARIOS SOBRE CONSULTAS A BASE DE DATOS USANDO
VISUAL BASIC 2010
Programacin Aplicada I

1.
Modo Diseo:


Consultas en SQL:
create proc TipBusComienza
@t nvarchar(40)
as
select ProductId, ProductName, UnitPrice, UnitsInStock, Categoryname, Companyname
from Products as p inner join Categories as c on c.CategoryID=p.CategoryID inner join
Suppliers as s on s.SupplierID=p.SupplierID
where ProductName like @t+ '%'

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

33
create proc TipBusTermina
@t nvarchar(40)
as
select ProductId, ProductName, UnitPrice, UnitsInStock, Categoryname, Companyname
from Products as p inner join Categories as c on c.CategoryID=p.CategoryID inner join
Suppliers as s on s.SupplierID=p.SupplierID
where ProductName like '%'+@t

create proc TipBusContiene
@t nvarchar(40)
as
select ProductId, ProductName, UnitPrice, UnitsInStock, Categoryname, Companyname
from Products as p inner join Categories as c on c.CategoryID=p.CategoryID inner join
Suppliers as s on s.SupplierID=p.SupplierID
where ProductName like '%'+@t+'%'

create proc TipBusNoContiene
@t nvarchar(40)
as
select ProductId, ProductName, UnitPrice, UnitsInStock, Categoryname, Companyname
from Products as p inner join Categories as c on c.CategoryID=p.CategoryID inner join
Suppliers as s on s.SupplierID=p.SupplierID
where ProductName not like '%'+@t+'%'

create proc TipBusIgualA
@t nvarchar(40)
as
select ProductId, ProductName, UnitPrice, UnitsInStock, Categoryname, Companyname
from Products as p inner join Categories as c on c.CategoryID=p.CategoryID inner join
Suppliers as s on s.SupplierID=p.SupplierID
where ProductName =@t





Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

34
Cdigo:


































Imports System.Data.SqlClient
Public Class Form1
Dim var1, var2, var3 As String
Private Sub TextBox1_KeyPress(sender As Object, e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Select Case (ListBox1.SelectedIndex)
Case 0
var1 = "TipBusComienza"
Case 1
var1 = "TipBusTermina"
Case 2
var1 = "TipBusContiene"
Case 3
var1 = "TipBusNoContiene"
Case 4
var1 = "TipBusIgualA"
End Select
If ListBox1.SelectedIndex Then
TextBox1.Focus()
End If
TextBox1.Focus()
Dim conex As New
SqlConnection("server=.;database=Northwind;trusted_connection=true")
Dim datos As New SqlDataAdapter(var1, conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.SelectCommand.Parameters.Add("@t", SqlDbType.NVarChar, 40).Value =
TextBox1.Text
datos.Fill(ds, "Query1")
DGV.DataSource = ds.Tables("Query1")
TextBox1.Text = ""
TextBox1.Focus()
End If
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

35
Pantallas:





Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

36



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

37
Modo Diseo:

Consultas en SQL:
create proc selec1
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
where UnitsinStock!=0

create proc selec2
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
where Discontinued=0

create proc selec3
@cat int
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

38
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
where CategoryID=@cat
create proc selec4
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
Cdigo:

































Imports System.Data.SqlClient
Public Class Form2
Dim var1, var2 As String
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim conex As New SqlConnection("server=.;database=Northwind;trusted_connection=true")
If RadioButton1.Checked = True Then
var1 = "selec1"
Dim datos2 As New SqlDataAdapter(var1, conex)
Dim ds2 As New Data.DataSet
datos2.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos2.Fill(ds2, "Query1")
DGV.DataSource = ds2.Tables("Query1")
ElseIf RadioButton2.Checked = True Then
var1 = "selec2"
Dim datos As New SqlDataAdapter("selec2", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.Fill(ds, "Query2")
DGV.DataSource = ds.Tables("Query2")
ElseIf RadioButton3.Checked = True Then
var1 = "selec3"
Dim datos1 As New SqlDataAdapter(var1, conex)
Dim ds1 As New Data.DataSet
datos1.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos1.SelectCommand.Parameters.Add("@cat", SqlDbType.NVarChar, 40).Value =
TextBox1.Text
datos1.Fill(ds1, "Query3")
DGV.DataSource = ds1.Tables("Query3")
ElseIf RadioButton4.Checked = True Then
var1 = "selec4"
Dim datos As New SqlDataAdapter(var1, conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.Fill(ds, "Query4")
DGV.DataSource = ds.Tables("Query4")
End If
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

39
Pantallas:





Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

40





Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

41
2.
Modo Diseo:


Consultas en SQL:

create proc selec1
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
where UnitsinStock!=0

create proc selec2
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
where Discontinued=0

create proc selec3
@cat int
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

42
where CategoryID=@cat

create proc selec4
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
Cdigo:



































Imports System.Data.SqlClient
Public Class Form3
Dim var1 As String
Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles
RadioButton3.CheckedChanged, RadioButton2.CheckedChanged, RadioButton1.CheckedChanged,
RadioButton4.CheckedChanged
Dim conex As New SqlConnection("server=.;database=Northwind;trusted_connection=true")
If RadioButton1.Checked = True Then
var1 = "selec1"
Dim datos2 As New SqlDataAdapter(var1, conex)
Dim ds2 As New Data.DataSet
datos2.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos2.Fill(ds2, "Query1")
DGV.DataSource = ds2.Tables("Query1")
ElseIf RadioButton2.Checked = True Then
var1 = "selec2"
Dim datos As New SqlDataAdapter("selec2", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.Fill(ds, "Query2")
DGV.DataSource = ds.Tables("Query2")
ElseIf RadioButton3.Checked = True Then
If RadioButton3.Checked Then
TextBox1.Enabled = True
Else
TextBox1.Enabled = False
End If
TextBox1.Focus()
ElseIf RadioButton4.Checked = True Then
var1 = "selec4"
Dim datos As New SqlDataAdapter(var1, conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.Fill(ds, "Query4")
DGV.DataSource = ds.Tables("Query4")
End If
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles
TextBox1.KeyPress
If e.KeyChar = Chr(13) Then
TextBox1.Focus()
Dim conex As New SqlConnection("server=.;database=Northwind;trusted_connection=true")
Dim datos As New SqlDataAdapter("selec3", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure '***
datos.SelectCommand.Parameters.Add("@cat", SqlDbType.NVarChar, 40).Value = TextBox1.Text
datos.Fill(ds, "Query3")
DGV.DataSource = ds.Tables("Query3")
TextBox1.Text = ""
TextBox1.Focus()
End If
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

43
Pantallas:




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

44



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

45
3.
Modo Diseo:


Cdigo:











Consulta SQL:
create proc ejercicio4
@fecha datetime
as
select o.OrderId, (OrderDate), ProductName, p.UnitPrice , Quantity


Imports System.Data.SqlClient

Public Class Form4

Private Sub MonthCalendar1_DateChanged(sender As System.Object, e As
System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
TextBox1.Text = MonthCalendar1.SelectionStart
Dim traerdatos As New SqlDataAdapter("ejercicio4", conex2)
traerdatos.SelectCommand.CommandType = CommandType.StoredProcedure
traerdatos.SelectCommand.Parameters.Add("@fecha", SqlDbType.DateTime).Value =
MonthCalendar1.SelectionStart
'fill = es abre la conexion, ejecuta la consulta
Dim contenedordatos As New Data.DataSet
traerdatos.Fill(contenedordatos, "con categoria")
DataGridView1.DataSource = contenedordatos.Tables("con categoria")
End Sub

Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
TextBox1.Enabled = False
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

46
from Products as p
inner join [Order Details] as od on od.ProductID =p.ProductID
inner join Orders as o on o.OrderID =od.OrderID
where @fecha=OrderDate

Pantallas:



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

47
EJERCICIOS
1.
Categoras
categoriId categorYname Descripcin

create proc categorias
as
select CategoryID,CategoryName,Description
from Categories

Productos
productoid

productname unitprice categoriId

create proc productos
@cat int
as
select ProductID,ProductName,UnitPrice,CategoryID
from (Products)
where CategoryID=@cat
Imports System.Data.SqlClient
Public Class consulta13

Private Sub consulta13_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
'TODO: This line of code loads data into the 'Northwind1DataSet.Categories' table. You
can move, or remove it, as needed.
Me.CategoriesTableAdapter1.Fill(Me.Northwind1DataSet.Categories)
End Sub
Dim conex As New SqlConnection("Data Source=MIK3\io;Initial
Catalog=Northwind1;Integrated Security=True")

Private Sub DGVCAB_CellEnter(sender As Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DGVCAB.CellEnter
Dim detalle As New SqlDataAdapter("select ProductID ,ProductName ,UnitPrice
,CategoryID from Products where CategoryID =@cate", conex)
Dim DB As New Data.DataSet
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

48
detalle.SelectCommand.Parameters.Add("@cate", SqlDbType.Int).Value =
DGVCAB.Rows(e.RowIndex).Cells(0).Value
detalle.Fill(DB, "detalle")
DGVDET.DataSource = DB.Tables("detalle")
End Sub
End Class


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

49


1.
ORDERS
ORDERID ORDERDATE FREIGHT

create proc ord
as
SELECT OrderID, OrderDate,Freight
FROM Orders
ORDERDETAILS
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

50
ORDERID

DISCOUNT PRODUCTID PRODUCTNAME
UNITPRICE
QUANTITI

create proc ordet
@n int
as
SELECT OrderID,Discount,P.ProductID,ProductnAME,P.UnitPrice
FROM [Order Details] OD INNER JOIN Products P ON P.ProductID=OD.ProductID
where OrderID=@n

Imports System.Data.SqlClient
Public Class CONSULTA14
Private Sub CONSULTA14_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim datos As New SqlDataAdapter("ord", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "consulta14")
DataGridView1.DataSource = ds.Tables("consulta14")
End Sub
Private Sub DataGridView1_CellEnter(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEnter
Dim datos As New SqlDataAdapter("ordet", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@n", SqlDbType.Int).Value =
DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ds As New Data.DataSet
datos.Fill(ds, "consulta141")
DataGridView2.DataSource = ds.Tables("consulta141")
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

51


2.


MOSTRAR LA FOTO DEL EMPLEADO SELECCIONADO
Me.EmployeesTableAdapter.Fill(Me.Northwind1DataSet3.Employees)


Imports System.Data.SqlClient
Public Class consulta15
Dim n As Integer
EMPLEADOID FIRSTNAME LASTNAME
ADRESS CITY COUNTRY
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

52
Dim conex As New SqlConnection("Data Source=MIK3\io;Initial
Catalog=Northwind1;Integrated Security=True")
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
n = DataGridView1.Rows(e.RowIndex).Cells(0).Value
PictureBox1.Image = Image.FromFile(CStr(n) + ".jpg")
End Sub

Private Sub consulta15_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.EmployeesTableAdapter.Fill(Me.Northwind1DataSet3.Employees)

End Sub
End Class




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

53
3.

EMPLEADOS
EMPLOYEEID LASTNAME FIRSTNAME


Me.EmployeesTableAdapter.Fill(Me.Northwind1DataSet.Employees)

RDENES REALIZADAS POR:
(Nombe completo del empleado)


OrderID OrderDate EmployeeId


CREATE proc ordxemp
@e int
as
select orderid,orderdate, employeeid
from orders
where employeeid=@e

Productos Comprados en la orden:
(OrderId)

OrderId ProductID Productname UnitPrice quantity


CREATE PROC CON3
@O INT
AS
SELECT O.ORDERID, P.ProductID, PRODUCTNAME, P.UNITPRICE,QUANTITY
FROM PRODUCTS P INNER JOIN [ORDER DETAILS] OD ON OD.PRODUCTID=P.ProductID
INNER JOIN ORDERS O ON O.ORDERID=OD.ORDERID
WHERE O.ORDERID=@O


Imports System.Data.SqlClient
Public Class Form3
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

54
Me.EmployeesTableAdapter.Fill(Me.Northwind1DataSet.Employees)
End Sub

Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
Dim datos As New SqlDataAdapter("ordxemp", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@e", SqlDbType.Int).Value =
DataGridView1.Rows(e.RowIndex).Cells(0).Value
Dim ds As New Data.DataSet
datos.Fill(ds, "consulta141")
DataGridView2.DataSource = ds.Tables("consulta141")
Label2.Text = DataGridView1.Rows(e.RowIndex).Cells(1).Value + " " +
DataGridView1.Rows(e.RowIndex).Cells(2).Value
End Sub

Private Sub DataGridView2_CellClick(ByVal sender As Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellClick
Dim datos As New SqlDataAdapter("CON3", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@O", SqlDbType.Int).Value =
DataGridView2.Rows(e.RowIndex).Cells(0).Value
Dim ds As New Data.DataSet
datos.Fill(ds, "consulta141")
DataGridView3.DataSource = ds.Tables("consulta141")
Label4.Text = DataGridView2.Rows(e.RowIndex).Cells(0).Value
End Sub
End Class












Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

55














Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

56












Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

57














Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

58













Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

59
INSERTAR EN UNA TABLA DE UBA BASE DE DATOS DESDE VISUAL BASIC

EN ESTA OPORTUNIDAD PRIMERO CREAREMOS UNA TABLA PERSONA
CON LOS SIGUIENTES CAMPOS:


CREAMOS EL PROCEDIMIENTO ALMACENADO QUE NOS PERMITIR INSERTAR
UNA NUEVA PERSONA

CREATE PROC INSERTAR_PERSO
@ID CHAR (8),
@N VARCHAR(30),
@A VARCHAR(40),
@E VARCHAR(50),
@G CHAR(1),
@EC CHAR(1),
@FN DATETIME
AS
INSERT INTO PERSONAS
VALUES (@ID,@N,@A,@E,@G,@EC,@FN)
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

60

VERIFICAMOS EJECUTANDO EL PROCEDIMIENTO ALMACENADO
INSERTAR_PERSO
EXEC INSERTAR_PERSO '47060664','KAREN JOHANA','ESTRADA
AGUILAR','KJESTRADAA@UNC.EDU.PE','F','S','22/10/1991'

HACEMOS LA SIGUIENTE CONSULTA PARA VERIFICAR:
SELECT *
FROM PERSONAS

OBTENIENTO EL SIGUIENTE RESULTADO:



OBJETO MaskedTextBox

CAMBIAR LA MASCARA

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

61


INSERTAR UNA PERSONA:

Imports System.Data.SqlClient
Public Class Form1
Sub limpiar_ingreso()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox6.Text = ""
MaskedTextBox1.Text = ""
TextBox1.Focus()
End Sub
Sub cargar_datos()
Dim datos As New SqlDataAdapter(" select * from Personas", conex)
Dim ds As New Data.DataSet
datos.Fill(ds, "Tabla")
DataGridView1.DataSource = ds.Tables("Tabla")
End Sub
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

62
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim respuesta As Integer
Dim sexo As Char
Dim insert_per As New SqlCommand("insertar_perso", conex)
If RadioButton1.Checked = True Then
sexo = "F"
ElseIf RadioButton2.Checked = True Then
sexo = "M"
End If
insert_per.CommandType = CommandType.StoredProcedure
insert_per.Parameters.Add("@id", SqlDbType.Char, 8).Value = TextBox1.Text
insert_per.Parameters.Add("@n", SqlDbType.VarChar, 30).Value = TextBox2.Text
insert_per.Parameters.Add("@a", SqlDbType.VarChar, 40).Value = TextBox3.Text
insert_per.Parameters.Add("@e", SqlDbType.VarChar, 50).Value = TextBox4.Text
insert_per.Parameters.Add("@g", SqlDbType.Char, 1).Value = sexo
insert_per.Parameters.Add("@ec", SqlDbType.Char, 1).Value = TextBox6.Text
insert_per.Parameters.Add("@fn", SqlDbType.DateTime).Value =
CDate(MaskedTextBox1.Text)
conex.Open()
respuesta = insert_per.ExecuteNonQuery
conex.Close()
If respuesta = 1 Then
MessageBox.Show("Se grab el registro")
limpiar_ingreso()
cargar_datos()
End If
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

63






Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

64


Ahora creamos la tabla libros



LA TABLA EDITORIAL Y LA TABLA AUTOR

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

65




LLENAMOS LAS TABLA EDITORIALES Y AUTORES CON ALGUNOS DATOS:




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

66
CREAMOS UN PROCEDIMIENTO ALMACENADO QUE NOS PERMITA INSERTAR
NUEVOS LIBROS:

use Northwind1
CREATE proc inserlibros
@t varchar(50),
@ide int,
@e varchar(50),
@a datetime,
@ida int
as
insert into Libros
(Titulo,IDEditorial,Edicion,AO_PUBLICACION,Autor)
values(@t,@ide,@e,@a,@ida)





Imports System.Data.SqlClient
Public Class Form2
Sub limpiar_ingreso()
TextBox1.Text = ""
TextBox2.Text = ""
MaskedTextBox1.Text = ""
TextBox1.Focus()
End Sub
Sub cargar_datos()
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

67
Dim datos As New SqlDataAdapter(" select * from Libros", conex)
Dim ds As New Data.DataSet
datos.Fill(ds, "Tabla")
DataGridView1.DataSource = ds.Tables("Tabla")
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Me.AUTORESTableAdapter.Fill(Me.Northwind1DataSet1.AUTORES)
Me.EDITORIALESTableAdapter1.Fill(Me.Northwind1DataSet.EDITORIALES)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim respuesta As Integer
Dim insert_per As New SqlCommand("inserlibros", conex)
insert_per.CommandType = CommandType.StoredProcedure
insert_per.Parameters.Add("@t", SqlDbType.VarChar, 50).Value = TextBox1.Text
insert_per.Parameters.Add("@ide", SqlDbType.Int).Value = ListBox1.SelectedValue
insert_per.Parameters.Add("@e", SqlDbType.VarChar, 50).Value = TextBox2.Text
insert_per.Parameters.Add("@a", SqlDbType.DateTime).Value = MaskedTextBox1.Text
insert_per.Parameters.Add("@ida", SqlDbType.Int).Value = ListBox2.SelectedValue
conex.Open()
respuesta = insert_per.ExecuteNonQuery
conex.Close()
If respuesta = 1 Then
MessageBox.Show("Se grab el registro")
limpiar_ingreso()
cargar_datos()
End If
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

68






Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

69


CONSULTAR, AGREGAR Y ELIMINAR REGISTROS EN LA TABLA CATEGORAS

Creamos un origen de datos, escogiendo los campos Category ID, Category Name,
Description de la tabla Categories:



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

70

Arrastramos este hacia el formulario teniendo lo siguiente:


Cdigo generado automticamente:

Public Class Form1

Private Sub CategoriesBindingNavigatorSaveItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles CategoriesBindingNavigatorSaveItem.Click
Me.Validate()
Me.CategoriesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.Northwind1DataSet)

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'TODO: This line of code loads data into the 'Northwind1DataSet.Categories' table. You
can move, or remove it, as needed.
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

71
Me.CategoriesTableAdapter.Fill(Me.Northwind1DataSet.Categories)

End Sub
End Class

Observando las categoras:



Agregando un nuevo registro:

El cdigo se autogenera, slo llenamos el nombre y la descripcin:



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

72
Damos en guardar:



Verificamos en sql:


Tambin lo podramos eliminar:


Guardamos:

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

73
Verificamos en sql:

Con el ejercicio anterior tambin podemos observar los productos que pertenecen a
esa categora cargando la informacin en un DataGridView:

Imports System.Data.SqlClient
Public Class Form1
Sub CargarDatos()
Dim conex As New
SqlConnection("server=MIK3\io;database=northwind1;trusted_connection=true")
Dim datos As New SqlDataAdapter("select
productname,unitprice,unitsinstock,categoryid from products where categoryid=@cate",
conex)
Dim ds As New Data.DataSet
datos.SelectCommand.Parameters.Add("@cate", SqlDbType.Int).Value =
CInt(CategoryIDTextBox.Text)
datos.Fill(ds, "Detalle")
DataGridView1.DataSource = ds.Tables("Detalle")
End Sub
Private Sub CategoriesBindingNavigatorSaveItem_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Me.Validate()
Me.CategoriesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.Northwind1DataSet)
End Sub

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

74
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'TODO: This line of code loads data into the 'Northwind1DataSet.Categories' table. You
can move, or remove it, as needed.
Me.CategoriesTableAdapter.Fill(Me.Northwind1DataSet.Categories)
CargarDatos()
End Sub
Private Sub CategoryIDTextBox_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles CategoryIDTextBox.TextChanged
CargarDatos()
End Sub
End Class




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

75


BUSCAR LA INFORMACIN DE UN PRODUCTO DE UN DETERMINADO
PRODUCTID:

Imports System.Data.SqlClient
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim conex As New
SqlConnection("server=MIK3\io;database=northwind1;trusted_connection=true")
Dim comando As New SqlCommand("select productname, unitprice, unitsinstock,
categoryid from products where productid= @id", conex)
comando.Parameters.Add("@id", SqlDbType.Int).Value = CInt(TextBox1.Text)
Dim registro As SqlDataReader
conex.Open()
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

76
registro = comando.ExecuteReader() ' se utiliza cuando es una consulta el
executereader trae una variable y la alamcena en registro
registro.Read()
If registro.HasRows = True Then
TextBox3.Text = registro.Item(0)
TextBox5.Text = registro.Item(3)
TextBox4.Text = registro.Item(1)
TextBox2.Text = registro.Item(2)
Else
MessageBox.Show("NO HAY REGISTROS QUE MOSTRAR")
End If
registro.Close()
conex.Close()
End Sub
End Class



Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

77


Guardar en una lista los datos del producto de un determinado proveedor:


Imports System.Data.SqlClient
Public Class Form3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim conex As New
SqlConnection("server=MIK3\io;database=northwind1;trusted_connection=true")
Dim comando As New SqlCommand("select productname, unitprice, unitsinstock,
SupplierID from products where SupplierID= @id", conex)
comando.Parameters.Add("@id", SqlDbType.Int).Value = CInt(TextBox1.Text)
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

78
Dim registro As SqlDataReader
conex.Open()
registro = comando.ExecuteReader()
registro.Read()
Do While registro.Read()
ListBox1.Items.Add(CStr(registro.Item(0)) + "-" + CStr(registro.Item(1)) + "-" +
CStr(registro.Item(2)) + "-" + CStr(registro.Item(3)))
Loop
registro.Close()
conex.Close()
End Sub
End Class








Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

79
CREAR IN INICIO DE SESIN PARA EL SISTEMA

Agregamos un nuevo elemento y escogemos Login Form:






Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

80
Ahora crearemos una tabla de usuarios en SQL respectivo:



LLENAMOS CON ALGUNOS DATOS:



EN VISUAL BASIC:

Imports System.Data.SqlClient
Public Class LoginForm1
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
OK.Click
Dim VALOR As Integer
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

81
Dim conex As New
SqlConnection("server=MIK3\io;database=northwind1;trusted_connection=true")
Dim QUERY As New SqlCommand("SELECT COUNT(*) FROM USUARIOS WHERE
USUARIO=@U AND CONTRASEA=@P", conex)
QUERY.Parameters.Add("@U", SqlDbType.VarChar, 20).Value = UsernameTextBox.Text
QUERY.Parameters.Add("@P", SqlDbType.VarChar, 20).Value = PasswordTextBox.Text
conex.Open()
VALOR = QUERY.ExecuteScalar()
conex.Close()
If VALOR = 1 Then
Form1.Show()
Me.Hide()
Me.Close()
Else
MessageBox.Show("USUARIO Y/O CONTRASEA INCORRECTA!!!")
MessageBox.Show("VUELVA A INGRESAR LO CORRECTO")
UsernameTextBox.Text = Space(0)
PasswordTextBox.Text = Space(0)
UsernameTextBox.Focus()
Me.Show()
End If
End Sub

Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Cancel.Click
Me.Close()
End Sub
End Class


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

82
S SE EJECUTA!!!!

CUANDO LA CONTRASEA O USUARIO ES INCORRECTO:



Cambiar contrasea desde otro formulario
Agregamos un link en el LoginForm1:



AL HACER CLIC EN EL LINK NOS LLEVA A OTRO FORMULARIO:
Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
Form4.Show()
End Sub







Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

83
EN EL FORMULARIO 4:

Imports System.Data.SqlClient
Public Class Form4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim conex As New
SqlConnection("server=MIK3\io;database=northwind1;trusted_connection=true")
Dim DATOS As New SqlCommand("UPDATE USUARIOS SET CONTRASEA=@NP
WHERE USUARIO=@U AND CONTRASEA=@P", conex)
If TextBox3.Text = TextBox4.Text Then
conex.Open()
DATOS.Parameters.Add("@NP", SqlDbType.VarChar, 20).Value = TextBox3.Text
DATOS.Parameters.Add("@U", SqlDbType.VarChar, 20).Value = TextBox1.Text
DATOS.Parameters.Add("@P", SqlDbType.VarChar, 20).Value = TextBox2.Text
MessageBox.Show("CAMBIO EXITOSO")
DATOS.ExecuteNonQuery()
conex.Close()
Else : MessageBox.Show("NO SE HA CAMBIADO")
End If
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
Me.Close()
End Sub
End Class
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

84


















Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

85
CREANDO EL SISTEMA DE ASISTENCIA DE LOS ALUMNOS DE INGENIERA
DE SISTEMAS A LA XII SEMANA SISTMICA

CREAMOS LA BASE DE DATOS SEM_SIST





Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

86





Buscar un alumno o por su cdigo o por su apellido:
create proc buscar_parti
@id varchar(10)
as
select *
from PARTICIPANTES
where IDPARTICIPANTE like @id+'%'


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

87
create proc cod
@ap varchar(20)
as
select *
from PARTICIPANTES
where APEPAT like @ap+'%'



Imports System.Data.SqlClient
Public Class Form1

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If RadioButton1.Checked = True Then
Dim datos As New SqlDataAdapter("buscar_parti", CONEX)
Dim ds As New Data.DataSet
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

88
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@id", SqlDbType.VarChar, 10).Value =
TextBox1.Text
datos.Fill(ds, "participantes")
DataGridView1.DataSource = ds.Tables("participantes")
ElseIf RadioButton2.Checked = True Then
Dim datos1 As New SqlDataAdapter("cod", CONEX)
Dim ds1 As New Data.DataSet
datos1.SelectCommand.CommandType = CommandType.StoredProcedure
datos1.SelectCommand.Parameters.Add("@AP", SqlDbType.VarChar, 20).Value =
TextBox1.Text
datos1.Fill(ds1, "participantes2")
DataGridView1.DataSource = ds1.Tables("participantes2")
End If
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

89


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

90



MANTENIMIENTO DE INSTITUCIONES


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

91


MANTENIMIENTO DE CONFERENCIAS








Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

92

NUEVO PARICIPANTE


Imports System.Data.SqlClient
Public Class Form4

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'TODO: This line of code loads data into the 'SEM_SISTDataSet3.INSTITUCIONES'
table. You can move, or remove it, as needed.
Me.INSTITUCIONESTableAdapter.Fill(Me.SEM_SISTDataSet3.INSTITUCIONES)

End Sub
Sub limpiar_ingreso()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
ComboBox1.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox1.Focus()
End Sub
Sub cargar_datos()
Dim datos As New SqlDataAdapter(" select * from PARTICIPANTES", CONEX)
Dim ds As New Data.DataSet
datos.Fill(ds, "Tabla")
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

93
DataGridView1.DataSource = ds.Tables("Tabla")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
Dim respuesta As Integer
Dim sexo As Char
Dim insert_par As New SqlCommand("InsertaParticipante", CONEX)
If RadioButton1.Checked = True Then
sexo = "1"
ElseIf RadioButton2.Checked = True Then
sexo = "2"
End If
insert_par.CommandType = CommandType.StoredProcedure
insert_par.Parameters.Add("@id", SqlDbType.Char, 10).Value = TextBox1.Text
insert_par.Parameters.Add("@ap", SqlDbType.VarChar, 20).Value = TextBox2.Text
insert_par.Parameters.Add("@am", SqlDbType.VarChar, 40).Value = TextBox3.Text
insert_par.Parameters.Add("@n", SqlDbType.VarChar, 50).Value = TextBox4.Text
insert_par.Parameters.Add("@s", SqlDbType.Char, 1).Value = sexo
insert_par.Parameters.Add("@e", SqlDbType.VarChar, 45).Value = TextBox5.Text
insert_par.Parameters.Add("@i", SqlDbType.Int).Value = ComboBox1.SelectedValue
CONEX.Open()
respuesta = insert_par.ExecuteNonQuery
CONEX.Close()
If respuesta = 1 Then
MessageBox.Show("Se grab el registro")
limpiar_ingreso()
cargar_datos()
End If
End Sub
End Class










Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

94
REPORTING SERVICE

AGREGAMOS UN NUEVO ELEMENTO (UN REPORTE):


ACEPTAMOS Y CREAMOS UN REPORTE:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

95


EN EL FORMULARIO ESCOGEMOS EL OBJETO REPORTVIEWER












Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

96
EJECUTAMOS



REPORTE DE VENTA DE TRUCHAS:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

97

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

98
Ventas por los empleados de cada ao:





rdenes por empleados en los meses:
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

99




Productos:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

100


Public Class Form5

Private Sub Form5_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.CategoriesTableAdapter.Fill(Me.NorthwindDataSet6.Categories)

ComboBox1.Text = Space(0)
End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.CATEGORIASTableAdapter.Fill(Me.NorthwindDataSet5.CATEGORIAS)
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

101
Me.REPORTESTableAdapter.Fill(Me.NorthwindDataSet4.REPORTES,
ComboBox1.SelectedValue)
Me.ReportViewer1.RefreshReport()
End Sub
End Class



Libros con pginas











Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

102
Clientes




Public Class Form7

Private Sub Form7_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
'TODO: esta lnea de cdigo carga datos en la tabla 'NorthwindDataSet8.Suppliers'
Puede moverla o quitarla segn sea necesario.
Me.SuppliersTableAdapter.Fill(Me.NorthwindDataSet8.Suppliers)
'TODO: esta lnea de cdigo carga datos en la tabla 'NorthwindDataSet7.Customers'
Puede moverla o quitarla segn sea necesario.
Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet7.Customers)

Me.ReportViewer1.RefreshReport()
Me.ReportViewer2.RefreshReport()
End Sub
End Class




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

103















Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

104

Ver empleado y rdenes que ha realizado






Reporte:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

105

Imports System.Data.SqlClient
Public Class Form1

Private Sub EmployeesBindingNavigatorSaveItem_Click(sender As System.Object, e As
System.EventArgs) Handles EmployeesBindingNavigatorSaveItem.Click
Me.Validate()
Me.EmployeesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.NorthwindDataSet)

End Sub

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.EmployeesTableAdapter.Fill(Me.NorthwindDataSet.Employees)
End Sub

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

106
Private Sub EmployeeIDTextBox_TextChanged(sender As System.Object, e As
System.EventArgs) Handles EmployeeIDTextBox.TextChanged
Dim conex As New
SqlConnection("server=.;database=Northwind;trusted_connection=true")
Dim DATOS As New SqlDataAdapter("detalle_orden", conex)
Dim ds As New Data.DataSet
DATOS.SelectCommand.CommandType = CommandType.StoredProcedure '***
DATOS.SelectCommand.Parameters.Add("@e", SqlDbType.Int).Value =
EmployeeIDTextBox.Text
DATOS.Fill(ds, "empleado")
DataGridView1.DataSource = ds.Tables("empleado")
End Sub
End Class

Reporte seleccionar un ao:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

107


Public Class Form2

Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load

Me.ANIOTableAdapter.Fill(Me.NorthwindDataSet2.ANIO)
End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.producvendiTableAdapter.Fill(Me.NorthwindDataSet4.producvendi,
ComboBox1.SelectedValue)
Me.ReportViewer1.RefreshReport()
End Sub

End Class



Seleccionando el cliente:
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

108

Public Class Form3

Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.MONTOSTableAdapter.Fill(Me.NorthwindDataSet9.MONTOS)
Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet5.Customers)

Me.ReportViewer1.RefreshReport()
End Sub

Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.CLIENTESTableAdapter.Fill(Me.NorthwindDataSet7.CLIENTES,
CChar(ComboBox1.SelectedValue))
Me.ReportViewer1.RefreshReport()
End Sub
End Class


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

109
Hacer un grfico de nmero de productos filtrado por categora:



Public Class Form4

Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.MONTOSTableAdapter.Fill(Me.NorthwindDataSet9.MONTOS)

Me.ReportViewer1.RefreshReport()
End Sub
End Class





Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

110
Reporte de los productos:



Public Class Form5

Private Sub Form5_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.PCTableAdapter1.Fill(Me.NorthwindDataSet11.PC)
Me.PCTableAdapter.Fill(Me.NorthwindDataSet10.PC)

Me.ReportViewer1.RefreshReport()
End Sub
End Class

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

111


Pasar un parmetro de clientete




Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

112
Public Class Form6
Private Sub Form6_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet13.Customers)
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.CLIENTITableAdapter.Fill(Me.NorthwindDataSet14.CLIENTI,
ComboBox1.SelectedValue)
Me.ReportViewer1.RefreshReport()
End Sub
End Class

Hacer un formulario donde se muestren las conferencias, los participantes, asistentes
y un grfico:

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

113
Reporte1:

Reporte2:

Reporte3:


Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

114
Reporte4:


Cdigo:
Public Class Form1

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.ASISXCTableAdapter.Fill(Me.Asistencia_Semana_SistmicaDataSet5.ASISXC)
Me.CONFERENCIASTableAdapter1.Fill(Me.Asistencia_Semana_SistmicaDataSet3.CONFERE
NCIAS)
Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

115
Me.CONFERENCIASTableAdapter.Fill(Me.Asistencia_Semana_SistmicaDataSet1.CONFERE
NCIAS)
Me.PARTICIPANTESTableAdapter.Fill(Me.Asistencia_Semana_SistmicaDataSet.PARTICIPA
NTES)
Me.ReportViewer1.RefreshReport()
Me.ReportViewer2.RefreshReport()
Me.ReportViewer4.RefreshReport()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Me.ASISTableAdapter.Fill(Me.Asistencia_Semana_SistmicaDataSet2.ASIS,
ComboBox1.SelectedValue)
Me.ReportViewer3.RefreshReport()
End Sub
End Class

Una consulta que nos lleve a otro formulario:
o Formulario 1:

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

116
Imports System.Data.SqlClient
Public Class Form2
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.ProductsTableAdapter.Fill(Me.NorthwindDataSet.Products)
End Sub
Private Sub DataGridView1_CellContentDoubleClick(sender As Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellContentDoubleClick
Dim detalle As New SqlDataAdapter("SELECT OD.OrderID, OD.UnitPrice, OD.Quantity,
P.ProductName FROM [Order Details] OD INNER JOIN Products P ON OD.ProductID =
P.ProductID WHERE P.ProductNAME=@P", conex)
Dim DB As New Data.DataSet
detalle.SelectCommand.Parameters.Add("@P", SqlDbType.NVarChar, 40).Value =
DataGridView1.Rows(e.RowIndex).Cells(1).Value
detalle.Fill(DB, "detalle")
Form3.DataGridView1.DataSource = DB.Tables("detalle")
Form3.Show()
End Sub
End Class
o Formulario2:

Manual de Visual Basic Parte II 2012

Estrada Aguilar, Karen Johana | PROGRAMACIN APLICADA I

117
Imports System.Data.SqlClient
Public Class Form2

Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.ProductsTableAdapter.Fill(Me.NorthwindDataSet.Products)
End Sub
Private Sub DataGridView1_CellContentDoubleClick(sender As Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
DataGridView1.CellContentDoubleClick
Dim detalle As New SqlDataAdapter("SELECT OD.OrderID, OD.UnitPrice, OD.Quantity,
P.ProductName FROM [Order Details] OD INNER JOIN Products P ON OD.ProductID =
P.ProductID WHERE P.ProductNAME=@P", conex)
Dim DB As New Data.DataSet
detalle.SelectCommand.Parameters.Add("@P", SqlDbType.NVarChar, 40).Value =
DataGridView1.Rows(e.RowIndex).Cells(1).Value
detalle.Fill(DB, "detalle")
Form3.DataGridView1.DataSource = DB.Tables("detalle")
Form3.Show()
End Sub
End Class

Você também pode gostar