SlideShare una empresa de Scribd logo
1 de 118
Descargar para leer sin conexión
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 | PROGRAMACIÓN APLICADA I
1
INDICE
CONSULTAS CON SQL EN VISUAL BASIC ........................................................................2
Mostrar el registro de la tabla estudiantes:................................................................4
Realizar el ejercicio anterior en una página web:......................................................5
Buscar un alumno filtrado por su código con Radio button:......................................8
Buscar un alumno filtrado por su código con Enter en el Textbox:..........................10
Mostrar alumnos o alumnas con radios button.........................................................12
UN TOOLsTRIP CON IMÁGENES......................................................................................15
El menúStrip deberá estar acompañado de imágenes: ....................................................15
Creamos un módulo (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 CATEGORÍAS ......69
CREAR IN INICIO DE SESIÓN PARA EL SISTEMA..........................................................79
Cambiar contraseña desde otro formulario .....................................................................82
CREANDO EL SISTEMA DE ASISTENCIA DE LOS ALUMNOS DE INGENIERÍA DE
SISTEMAS A LA XII SEMANA SISTÉMICA........................................................................85
REPORTING SERVICE........................................................................................................94
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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_Sistémica
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 | PROGRAMACIÓN APLICADA I
3
CREAMOS UN FORMULARIO EN VISUAL STUDIO
 Ponemos la cabecera que funcionaría como una biblioteca: Imports
System.Data.SqlClient
 Realizamos la conexión a la Base de Datos creando el objeto conex (conex es un objeto
que guarda la ubicación de la base de datos ya sabe dónde 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 código en Visual Studio es:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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=MIK3io;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 | PROGRAMACIÓN APLICADA I
5
 Realizar el ejercicio anterior en una página web:
1° Creamos un nuevo proyecto y escogemos en planillas instaladas la opción Web:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
6
2° Escogemos la opción Aplicación 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 | PROGRAMACIÓN APLICADA I
7
Escogemos un DataGridView y lo arrastramos sobre el formulario:
Escribimos el código:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
8
Cargó:
 Buscar un alumno filtrado por su código 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 | PROGRAMACIÓN 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
Diseño del formulario:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
10
 Buscar un alumno filtrado por su código con Enter en el Textbox:
En el evento keypress del textbox hacemos la conexión y el código:
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 | PROGRAMACIÓN 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=MIK3io;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 | PROGRAMACIÓN 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=MIK3io;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 | PROGRAMACIÓN APLICADA I
13
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
14
En un sistema realizar el mantenimiento en consultas:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
15
UN TOOLsTRIP CON IMÁGENES
EN CONSULTA HACEMOS LOS SIGUIENTES FORMULARIO:
El menúStrip deberá estar acompañado de imágenes:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
16
Creamos un módulo (Globales)
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
17
Escribimos el siguiente Código:
Module GLOBALES
Public CONEX As New
System.Data.SqlClient.SqlConnection("server=MIK3io;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 | PROGRAMACIÓN 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 línea de código carga datos en la tabla 'NorthwindDataSet.Categories'
Puede moverla o quitarla según sea necesario.
Me.CategoriesTableAdapter.Fill(Me.NorthwindDataSet.Categories)
End Sub
End Class
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
19
AGREGAR UNA CONSULTA A UN LISTBOX
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
20
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
21
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
22
Asignar los valores correspondientes al listbox
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
27
 Filtrar por número 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
29
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
31
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
32
EJERCICIOS COMPLEMENTARIOS SOBRE CONSULTAS A BASE DE DATOS USANDO
VISUAL BASIC 2010
Programación Aplicada I
1.
Modo Diseño:
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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
34
Código:
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 | PROGRAMACIÓN APLICADA I
35
Pantallas:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
36
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
37
Modo Diseño:
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 | PROGRAMACIÓN 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
Código:
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 | PROGRAMACIÓN APLICADA I
39
Pantallas:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
40
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
41
2.
Modo Diseño:
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 | PROGRAMACIÓN APLICADA I
42
where CategoryID=@cat
create proc selec4
as
select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued
from Products
Código:
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 | PROGRAMACIÓN APLICADA I
43
Pantallas:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
44
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
45
3.
Modo Diseño:
Código:
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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
47
EJERCICIOS
1.
Categorías
categoriId categorYname Descripción
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=MIK3io;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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
52
Dim conex As New SqlConnection("Data Source=MIK3io;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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
55
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
56
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
57
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
58
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
63
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
65
LLENAMOS LAS TABLA EDITORIALES Y AUTORES CON ALGUNOS DATOS:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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,AÑO_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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
68
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
69
CONSULTAR, AGREGAR Y ELIMINAR REGISTROS EN LA TABLA CATEGORÍAS
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 | PROGRAMACIÓN APLICADA I
70
Arrastramos este hacia el formulario teniendo lo siguiente:
Código generado automáticamente:
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 | PROGRAMACIÓN APLICADA I
71
Me.CategoriesTableAdapter.Fill(Me.Northwind1DataSet.Categories)
End Sub
End Class
Observando las categorías:
Agregando un nuevo registro:
El código se autogenera, sólo llenamos el nombre y la descripción:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
72
Damos en guardar:
Verificamos en sql:
También lo podríamos eliminar:
Guardamos:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
73
Verificamos en sql:
Con el ejercicio anterior también podemos observar los productos que pertenecen a
esa categoría cargando la información en un DataGridView:
Imports System.Data.SqlClient
Public Class Form1
Sub CargarDatos()
Dim conex As New
SqlConnection("server=MIK3io;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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
75
BUSCAR LA INFORMACIÓN 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=MIK3io;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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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=MIK3io;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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
79
CREAR IN INICIO DE SESIÓN PARA EL SISTEMA
Agregamos un nuevo elemento y escogemos Login Form:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
81
Dim conex As New
SqlConnection("server=MIK3io;database=northwind1;trusted_connection=true")
Dim QUERY As New SqlCommand("SELECT COUNT(*) FROM USUARIOS WHERE
USUARIO=@U AND CONTRASEÑA=@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 CONTRASEÑA 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 | PROGRAMACIÓN APLICADA I
82
SÍ SE EJECUTA!!!!
CUANDO LA CONTRASEÑA O USUARIO ES INCORRECTO:
Cambiar contraseña 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 | PROGRAMACIÓN 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=MIK3io;database=northwind1;trusted_connection=true")
Dim DATOS As New SqlCommand("UPDATE USUARIOS SET CONTRASEÑA=@NP
WHERE USUARIO=@U AND CONTRASEÑA=@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 | PROGRAMACIÓN APLICADA I
84
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
85
CREANDO EL SISTEMA DE ASISTENCIA DE LOS ALUMNOS DE INGENIERÍA
DE SISTEMAS A LA XII SEMANA SISTÉMICA
CREAMOS LA BASE DE DATOS SEM_SIST
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
86
Buscar un alumno o por su código 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
89
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
90
MANTENIMIENTO DE INSTITUCIONES
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
91
MANTENIMIENTO DE CONFERENCIAS
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
95
EN EL FORMULARIO ESCOGEMOS EL OBJETO REPORTVIEWER
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
96
EJECUTAMOS
REPORTE DE VENTA DE TRUCHAS:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
97
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
98
Ventas por los empleados de cada año:
 Órdenes por empleados en los meses:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
99
 Productos:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
101
Me.REPORTESTableAdapter.Fill(Me.NorthwindDataSet4.REPORTES,
ComboBox1.SelectedValue)
Me.ReportViewer1.RefreshReport()
End Sub
End Class
 Libros con páginas
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
102
Clientes
Public Class Form7
Private Sub Form7_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
'TODO: esta línea de código carga datos en la tabla 'NorthwindDataSet8.Suppliers'
Puede moverla o quitarla según sea necesario.
Me.SuppliersTableAdapter.Fill(Me.NorthwindDataSet8.Suppliers)
'TODO: esta línea de código carga datos en la tabla 'NorthwindDataSet7.Customers'
Puede moverla o quitarla según 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 | PROGRAMACIÓN APLICADA I
103
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
104
Ver empleado y Órdenes que ha realizado
Reporte:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 año:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
109
Hacer un gráfico de número de productos filtrado por categoría:
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 | PROGRAMACIÓN 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 | PROGRAMACIÓN APLICADA I
111
 Pasar un parámetro de clientete
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 gráfico:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
113
Reporte1:
Reporte2:
Reporte3:
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
114
Reporte4:
Código:
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.ASISXCTableAdapter.Fill(Me.Asistencia_Semana_SistémicaDataSet5.ASISXC)
Me.CONFERENCIASTableAdapter1.Fill(Me.Asistencia_Semana_SistémicaDataSet3.CONFERE
NCIAS)
Manual de Visual Basic Parte II 2012
Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I
115
Me.CONFERENCIASTableAdapter.Fill(Me.Asistencia_Semana_SistémicaDataSet1.CONFERE
NCIAS)
Me.PARTICIPANTESTableAdapter.Fill(Me.Asistencia_Semana_SistémicaDataSet.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_SistémicaDataSet2.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 | PROGRAMACIÓN 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 | PROGRAMACIÓN 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

Más contenido relacionado

La actualidad más candente

TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOiberhack
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basicsantiagomario8
 
Conectar con bases de datos
Conectar con bases de datosConectar con bases de datos
Conectar con bases de datosRafael Quintero
 
ConexióN De Base De Datos
ConexióN De Base De DatosConexióN De Base De Datos
ConexióN De Base De DatosVerenice Corea
 
Acceso A Datos Y Ado.Net
Acceso A Datos Y Ado.NetAcceso A Datos Y Ado.Net
Acceso A Datos Y Ado.Netjennysofia
 
Bases de datos_angelina_monetti
Bases de datos_angelina_monettiBases de datos_angelina_monetti
Bases de datos_angelina_monettiangelinamonetti1
 
Curso SQL-C# Basico
Curso SQL-C# BasicoCurso SQL-C# Basico
Curso SQL-C# BasicoserTI_MX
 
Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!Ziscko
 
Conexión Base de Datos Access con Visual 2005
Conexión Base de Datos Access con Visual 2005Conexión Base de Datos Access con Visual 2005
Conexión Base de Datos Access con Visual 2005Ricardo Viqueira
 
Como conectar visual basic 6.0 a una base de datos microsoft sql server
Como conectar visual basic 6.0 a una base de datos microsoft sql serverComo conectar visual basic 6.0 a una base de datos microsoft sql server
Como conectar visual basic 6.0 a una base de datos microsoft sql serverKarolaynCardozo1
 
Conexión c# sql server
Conexión c# sql serverConexión c# sql server
Conexión c# sql serverLUZ ARIZPE
 
Pasos Para La Conecxion De Visual Con Access Importante 12
Pasos Para La Conecxion De Visual Con Access Importante 12Pasos Para La Conecxion De Visual Con Access Importante 12
Pasos Para La Conecxion De Visual Con Access Importante 12guest035fce1
 

La actualidad más candente (18)

TUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENOTUTORIAL DE ADO.NET MUY BUENO
TUTORIAL DE ADO.NET MUY BUENO
 
desarrollo en 3 capas VB
desarrollo en 3 capas VBdesarrollo en 3 capas VB
desarrollo en 3 capas VB
 
Access 2007 Y Visual 2008
Access 2007 Y Visual 2008Access 2007 Y Visual 2008
Access 2007 Y Visual 2008
 
bases de datos desde visual basic
bases de datos desde visual basicbases de datos desde visual basic
bases de datos desde visual basic
 
Conectar con bases de datos
Conectar con bases de datosConectar con bases de datos
Conectar con bases de datos
 
ConexióN De Base De Datos
ConexióN De Base De DatosConexióN De Base De Datos
ConexióN De Base De Datos
 
Visual y sql
Visual y sqlVisual y sql
Visual y sql
 
VISUAL Y SQL SERVER
VISUAL Y SQL SERVERVISUAL Y SQL SERVER
VISUAL Y SQL SERVER
 
Acceso A Datos Y Ado.Net
Acceso A Datos Y Ado.NetAcceso A Datos Y Ado.Net
Acceso A Datos Y Ado.Net
 
Bases de datos_angelina_monetti
Bases de datos_angelina_monettiBases de datos_angelina_monetti
Bases de datos_angelina_monetti
 
Curso SQL-C# Basico
Curso SQL-C# BasicoCurso SQL-C# Basico
Curso SQL-C# Basico
 
Guia no1 ado.net
Guia no1 ado.netGuia no1 ado.net
Guia no1 ado.net
 
Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!Aprenda a conectar sql y c# en 19 sencillos pasos!
Aprenda a conectar sql y c# en 19 sencillos pasos!
 
Conexión Base de Datos Access con Visual 2005
Conexión Base de Datos Access con Visual 2005Conexión Base de Datos Access con Visual 2005
Conexión Base de Datos Access con Visual 2005
 
Como conectar visual basic 6.0 a una base de datos microsoft sql server
Como conectar visual basic 6.0 a una base de datos microsoft sql serverComo conectar visual basic 6.0 a una base de datos microsoft sql server
Como conectar visual basic 6.0 a una base de datos microsoft sql server
 
Conexión c# sql server
Conexión c# sql serverConexión c# sql server
Conexión c# sql server
 
BD BV
BD BVBD BV
BD BV
 
Pasos Para La Conecxion De Visual Con Access Importante 12
Pasos Para La Conecxion De Visual Con Access Importante 12Pasos Para La Conecxion De Visual Con Access Importante 12
Pasos Para La Conecxion De Visual Con Access Importante 12
 

Destacado

Ejercicios resueltos informática II practica 1 (nueva 2014)
Ejercicios resueltos informática II practica 1 (nueva 2014)Ejercicios resueltos informática II practica 1 (nueva 2014)
Ejercicios resueltos informática II practica 1 (nueva 2014)Alvin Jacobs
 
Informática I: Ejercicios Resueltos
Informática I:  Ejercicios ResueltosInformática I:  Ejercicios Resueltos
Informática I: Ejercicios ResueltosAlvin Jacobs
 
Mantto con vb2010
Mantto con vb2010Mantto con vb2010
Mantto con vb2010tihuilo
 
INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010
INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010
INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010Estefy Sanchez
 
Programación visual con VB.NET
Programación visual con VB.NETProgramación visual con VB.NET
Programación visual con VB.NETYamil Lambert
 
Actividad 02 manual para elaborar paginas descriptivas lim_malena ibañez
Actividad 02 manual para elaborar paginas descriptivas lim_malena ibañezActividad 02 manual para elaborar paginas descriptivas lim_malena ibañez
Actividad 02 manual para elaborar paginas descriptivas lim_malena ibañezMALENA TATIANA IBÁÑEZ TALLEDO
 
Curso de Visual Basic 5.0
Curso de Visual Basic 5.0Curso de Visual Basic 5.0
Curso de Visual Basic 5.0degarden
 
Documentación para la inscripción por correo postal
Documentación para la inscripción por correo postalDocumentación para la inscripción por correo postal
Documentación para la inscripción por correo postalMarco Mansilla
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentosredtacna
 
Visual basic applications
Visual basic applicationsVisual basic applications
Visual basic applicationsJoeRiascos
 
Visual estudio
Visual estudioVisual estudio
Visual estudioJenssy23
 

Destacado (20)

manual visual basic 01
manual visual basic 01manual visual basic 01
manual visual basic 01
 
Ejercicios resueltos informática II practica 1 (nueva 2014)
Ejercicios resueltos informática II practica 1 (nueva 2014)Ejercicios resueltos informática II practica 1 (nueva 2014)
Ejercicios resueltos informática II practica 1 (nueva 2014)
 
Trabajo lab
Trabajo labTrabajo lab
Trabajo lab
 
Informática I: Ejercicios Resueltos
Informática I:  Ejercicios ResueltosInformática I:  Ejercicios Resueltos
Informática I: Ejercicios Resueltos
 
Mantto con vb2010
Mantto con vb2010Mantto con vb2010
Mantto con vb2010
 
Vb Leccion1
Vb Leccion1Vb Leccion1
Vb Leccion1
 
INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010
INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010
INTRODUCCIÓN A MICROSOFT VISUAL STUDIO 2010
 
Programación visual con VB.NET
Programación visual con VB.NETProgramación visual con VB.NET
Programación visual con VB.NET
 
Manual sesion 01
Manual sesion 01Manual sesion 01
Manual sesion 01
 
MANUAL DE VISUAL BASIC. 2010
MANUAL DE VISUAL BASIC. 2010MANUAL DE VISUAL BASIC. 2010
MANUAL DE VISUAL BASIC. 2010
 
Actividad 02 manual para elaborar paginas descriptivas lim_malena ibañez
Actividad 02 manual para elaborar paginas descriptivas lim_malena ibañezActividad 02 manual para elaborar paginas descriptivas lim_malena ibañez
Actividad 02 manual para elaborar paginas descriptivas lim_malena ibañez
 
Manual De Visual Basic
Manual De Visual BasicManual De Visual Basic
Manual De Visual Basic
 
Apps .Net Y Gambas
Apps .Net Y GambasApps .Net Y Gambas
Apps .Net Y Gambas
 
Visual Net
Visual NetVisual Net
Visual Net
 
Curso de Visual Basic 5.0
Curso de Visual Basic 5.0Curso de Visual Basic 5.0
Curso de Visual Basic 5.0
 
Documentación para la inscripción por correo postal
Documentación para la inscripción por correo postalDocumentación para la inscripción por correo postal
Documentación para la inscripción por correo postal
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Visual basic applications
Visual basic applicationsVisual basic applications
Visual basic applications
 
Manual Visual Basic Net
Manual Visual Basic NetManual Visual Basic Net
Manual Visual Basic Net
 
Visual estudio
Visual estudioVisual estudio
Visual estudio
 

Similar a manual visual basic 02

8. Acceso A Datos Con Microsoft Ado.Net
8.  Acceso A Datos Con Microsoft Ado.Net8.  Acceso A Datos Con Microsoft Ado.Net
8. Acceso A Datos Con Microsoft Ado.Netguest3cf6ff
 
Proveedor manuel
Proveedor manuelProveedor manuel
Proveedor manuelfanyto
 
Informe conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangelInforme conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangelDiegoRangel39
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETHaaron Gonzalez
 
Tallerprogramacion
TallerprogramacionTallerprogramacion
Tallerprogramacionjohanadoria
 
Practica no7 filtrar datos con datagrid
Practica no7 filtrar datos con datagridPractica no7 filtrar datos con datagrid
Practica no7 filtrar datos con datagridAdrian Rubio
 
Actualizando bases de datos
Actualizando bases de datosActualizando bases de datos
Actualizando bases de datosLuisSanchez1235
 
Clase 10 formularios
Clase 10   formulariosClase 10   formularios
Clase 10 formularioshydras_cs
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaLuis Beltran
 
Actualizacion de datos
Actualizacion de datosActualizacion de datos
Actualizacion de datosGirbelyMendez
 
Dayismel cervantes 3_er corte 1er 20%
Dayismel cervantes 3_er corte 1er 20%Dayismel cervantes 3_er corte 1er 20%
Dayismel cervantes 3_er corte 1er 20%Dayismel Cervantes
 
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasNelson Salinas
 
Conexion con visual basic 6.0
Conexion con visual basic 6.0Conexion con visual basic 6.0
Conexion con visual basic 6.0josecoronel38
 

Similar a manual visual basic 02 (20)

Practica9 bases de datos
Practica9 bases de datosPractica9 bases de datos
Practica9 bases de datos
 
Practica9 bases de datos
Practica9 bases de datosPractica9 bases de datos
Practica9 bases de datos
 
Dprn3 u3 a1_hehm
Dprn3 u3 a1_hehmDprn3 u3 a1_hehm
Dprn3 u3 a1_hehm
 
Minero de Datos
Minero de DatosMinero de Datos
Minero de Datos
 
Capa de presentacion
Capa de presentacionCapa de presentacion
Capa de presentacion
 
8. Acceso A Datos Con Microsoft Ado.Net
8.  Acceso A Datos Con Microsoft Ado.Net8.  Acceso A Datos Con Microsoft Ado.Net
8. Acceso A Datos Con Microsoft Ado.Net
 
Proveedor manuel
Proveedor manuelProveedor manuel
Proveedor manuel
 
Informe conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangelInforme conecta base_datos_diego_rangel
Informe conecta base_datos_diego_rangel
 
Entrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NETEntrenamiento en Acceso a Datos con ASP.NET
Entrenamiento en Acceso a Datos con ASP.NET
 
Tallerprogramacion
TallerprogramacionTallerprogramacion
Tallerprogramacion
 
Practica no7 filtrar datos con datagrid
Practica no7 filtrar datos con datagridPractica no7 filtrar datos con datagrid
Practica no7 filtrar datos con datagrid
 
Guia no2 ado.net
Guia no2 ado.netGuia no2 ado.net
Guia no2 ado.net
 
Actualizando bases de datos
Actualizando bases de datosActualizando bases de datos
Actualizando bases de datos
 
Dprn3 u3 a1_vims
Dprn3 u3 a1_vimsDprn3 u3 a1_vims
Dprn3 u3 a1_vims
 
Clase 10 formularios
Clase 10   formulariosClase 10   formularios
Clase 10 formularios
 
Taller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataformaTaller desarrollando sitios web multiplataforma
Taller desarrollando sitios web multiplataforma
 
Actualizacion de datos
Actualizacion de datosActualizacion de datos
Actualizacion de datos
 
Dayismel cervantes 3_er corte 1er 20%
Dayismel cervantes 3_er corte 1er 20%Dayismel cervantes 3_er corte 1er 20%
Dayismel cervantes 3_er corte 1er 20%
 
Desarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capasDesarrollo de práctica para un modelo de tres capas
Desarrollo de práctica para un modelo de tres capas
 
Conexion con visual basic 6.0
Conexion con visual basic 6.0Conexion con visual basic 6.0
Conexion con visual basic 6.0
 

manual visual basic 02

  • 1. MANUAL DE VISUAL BASIC PARTE II Nombre: Karen Johana Estrada Aguilar CONSULTAS CON SQL – REPORTING SERVICES CAJAMARCA, 2012
  • 2. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 1 INDICE CONSULTAS CON SQL EN VISUAL BASIC ........................................................................2 Mostrar el registro de la tabla estudiantes:................................................................4 Realizar el ejercicio anterior en una página web:......................................................5 Buscar un alumno filtrado por su código con Radio button:......................................8 Buscar un alumno filtrado por su código con Enter en el Textbox:..........................10 Mostrar alumnos o alumnas con radios button.........................................................12 UN TOOLsTRIP CON IMÁGENES......................................................................................15 El menúStrip deberá estar acompañado de imágenes: ....................................................15 Creamos un módulo (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 CATEGORÍAS ......69 CREAR IN INICIO DE SESIÓN PARA EL SISTEMA..........................................................79 Cambiar contraseña desde otro formulario .....................................................................82 CREANDO EL SISTEMA DE ASISTENCIA DE LOS ALUMNOS DE INGENIERÍA DE SISTEMAS A LA XII SEMANA SISTÉMICA........................................................................85 REPORTING SERVICE........................................................................................................94
  • 3. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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_Sistémica 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 )
  • 4. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 3 CREAMOS UN FORMULARIO EN VISUAL STUDIO  Ponemos la cabecera que funcionaría como una biblioteca: Imports System.Data.SqlClient  Realizamos la conexión a la Base de Datos creando el objeto conex (conex es un objeto que guarda la ubicación de la base de datos ya sabe dónde 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 código en Visual Studio es:
  • 5. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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=MIK3io;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
  • 6. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 5  Realizar el ejercicio anterior en una página web: 1° Creamos un nuevo proyecto y escogemos en planillas instaladas la opción Web:
  • 7. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 6 2° Escogemos la opción Aplicación web ASP.NET: 3° Se observa el entorno así: 4° Agregamos un nuevo elemento un (Formulario):
  • 8. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 7 Escogemos un DataGridView y lo arrastramos sobre el formulario: Escribimos el código:
  • 9. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 8 Cargó:  Buscar un alumno filtrado por su código 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)
  • 10. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 Diseño del formulario:
  • 11. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 10  Buscar un alumno filtrado por su código con Enter en el Textbox: En el evento keypress del textbox hacemos la conexión y el código: 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
  • 12. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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=MIK3io;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 '***
  • 13. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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=MIK3io;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
  • 14. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 13
  • 15. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 14 En un sistema realizar el mantenimiento en consultas:
  • 16. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 15 UN TOOLsTRIP CON IMÁGENES EN CONSULTA HACEMOS LOS SIGUIENTES FORMULARIO: El menúStrip deberá estar acompañado de imágenes:
  • 17. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 16 Creamos un módulo (Globales)
  • 18. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 17 Escribimos el siguiente Código: Module GLOBALES Public CONEX As New System.Data.SqlClient.SqlConnection("server=MIK3io;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
  • 19. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 línea de código carga datos en la tabla 'NorthwindDataSet.Categories' Puede moverla o quitarla según sea necesario. Me.CategoriesTableAdapter.Fill(Me.NorthwindDataSet.Categories) End Sub End Class
  • 20. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 19 AGREGAR UNA CONSULTA A UN LISTBOX
  • 21. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 20
  • 22. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 21
  • 23. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 22 Asignar los valores correspondientes al listbox
  • 24. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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")
  • 25. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 26. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 27. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 28. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 27  Filtrar por número 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
  • 29. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 30. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 29
  • 31. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 32. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 31
  • 33. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 32 EJERCICIOS COMPLEMENTARIOS SOBRE CONSULTAS A BASE DE DATOS USANDO VISUAL BASIC 2010 Programación Aplicada I 1. Modo Diseño: 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+ '%'
  • 34. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 35. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 34 Código: 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
  • 36. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 35 Pantallas:
  • 37. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 36
  • 38. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 37 Modo Diseño: 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
  • 39. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 Código: 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
  • 40. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 39 Pantallas:
  • 41. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 40
  • 42. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 41 2. Modo Diseño: 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
  • 43. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 42 where CategoryID=@cat create proc selec4 as select ProductName, UnitPrice, UnitsinStock, CategoryID, Discontinued from Products Código: 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
  • 44. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 43 Pantallas:
  • 45. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 44
  • 46. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 45 3. Modo Diseño: Código: 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
  • 47. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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:
  • 48. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 47 EJERCICIOS 1. Categorías categoriId categorYname Descripción 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=MIK3io;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
  • 49. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 50. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 49 1. ORDERS ORDERID ORDERDATE FREIGHT create proc ord as SELECT OrderID, OrderDate,Freight FROM Orders ORDERDETAILS
  • 51. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 52. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 53. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 52 Dim conex As New SqlConnection("Data Source=MIK3io;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
  • 54. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 55. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 56. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 55
  • 57. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 56
  • 58. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 57
  • 59. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 58
  • 60. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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)
  • 61. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 62. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 63. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 64. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 63
  • 65. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 64 Ahora creamos la tabla “libros” LA TABLA EDITORIAL Y LA TABLA AUTOR
  • 66. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 65 LLENAMOS LAS TABLA EDITORIALES Y AUTORES CON ALGUNOS DATOS:
  • 67. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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,AÑO_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()
  • 68. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 69. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 68
  • 70. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 69 CONSULTAR, AGREGAR Y ELIMINAR REGISTROS EN LA TABLA CATEGORÍAS Creamos un origen de datos, escogiendo los campos Category ID, Category Name, Description de la tabla Categories:
  • 71. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 70 Arrastramos este hacia el formulario teniendo lo siguiente: Código generado automáticamente: 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.
  • 72. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 71 Me.CategoriesTableAdapter.Fill(Me.Northwind1DataSet.Categories) End Sub End Class Observando las categorías: Agregando un nuevo registro: El código se autogenera, sólo llenamos el nombre y la descripción:
  • 73. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 72 Damos en guardar: Verificamos en sql: También lo podríamos eliminar: Guardamos:
  • 74. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 73 Verificamos en sql: Con el ejercicio anterior también podemos observar los productos que pertenecen a esa categoría cargando la información en un DataGridView: Imports System.Data.SqlClient Public Class Form1 Sub CargarDatos() Dim conex As New SqlConnection("server=MIK3io;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
  • 75. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 76. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 75 BUSCAR LA INFORMACIÓN 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=MIK3io;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()
  • 77. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 78. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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=MIK3io;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)
  • 79. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 80. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 79 CREAR IN INICIO DE SESIÓN PARA EL SISTEMA Agregamos un nuevo elemento y escogemos Login Form:
  • 81. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 82. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 81 Dim conex As New SqlConnection("server=MIK3io;database=northwind1;trusted_connection=true") Dim QUERY As New SqlCommand("SELECT COUNT(*) FROM USUARIOS WHERE USUARIO=@U AND CONTRASEÑA=@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 CONTRASEÑA 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
  • 83. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 82 SÍ SE EJECUTA!!!! CUANDO LA CONTRASEÑA O USUARIO ES INCORRECTO: Cambiar contraseña 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
  • 84. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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=MIK3io;database=northwind1;trusted_connection=true") Dim DATOS As New SqlCommand("UPDATE USUARIOS SET CONTRASEÑA=@NP WHERE USUARIO=@U AND CONTRASEÑA=@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
  • 85. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 84
  • 86. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 85 CREANDO EL SISTEMA DE ASISTENCIA DE LOS ALUMNOS DE INGENIERÍA DE SISTEMAS A LA XII SEMANA SISTÉMICA CREAMOS LA BASE DE DATOS SEM_SIST
  • 87. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 86 Buscar un alumno o por su código o por su apellido: create proc buscar_parti @id varchar(10) as select * from PARTICIPANTES where IDPARTICIPANTE like @id+'%'
  • 88. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 89. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 90. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 89
  • 91. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 90 MANTENIMIENTO DE INSTITUCIONES
  • 92. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 91 MANTENIMIENTO DE CONFERENCIAS
  • 93. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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")
  • 94. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 95. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 94 REPORTING SERVICE AGREGAMOS UN NUEVO ELEMENTO (UN REPORTE): ACEPTAMOS Y CREAMOS UN REPORTE:
  • 96. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 95 EN EL FORMULARIO ESCOGEMOS EL OBJETO REPORTVIEWER
  • 97. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 96 EJECUTAMOS REPORTE DE VENTA DE TRUCHAS:
  • 98. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 97
  • 99. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 98 Ventas por los empleados de cada año:  Órdenes por empleados en los meses:
  • 100. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 99  Productos:
  • 101. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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)
  • 102. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 101 Me.REPORTESTableAdapter.Fill(Me.NorthwindDataSet4.REPORTES, ComboBox1.SelectedValue) Me.ReportViewer1.RefreshReport() End Sub End Class  Libros con páginas
  • 103. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 102 Clientes Public Class Form7 Private Sub Form7_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 'TODO: esta línea de código carga datos en la tabla 'NorthwindDataSet8.Suppliers' Puede moverla o quitarla según sea necesario. Me.SuppliersTableAdapter.Fill(Me.NorthwindDataSet8.Suppliers) 'TODO: esta línea de código carga datos en la tabla 'NorthwindDataSet7.Customers' Puede moverla o quitarla según sea necesario. Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet7.Customers) Me.ReportViewer1.RefreshReport() Me.ReportViewer2.RefreshReport() End Sub End Class
  • 104. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 103
  • 105. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 104 Ver empleado y Órdenes que ha realizado Reporte:
  • 106. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 107. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 año:
  • 108. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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:
  • 109. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 110. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 109 Hacer un gráfico de número de productos filtrado por categoría: 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
  • 111. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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
  • 112. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 111  Pasar un parámetro de clientete
  • 113. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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 gráfico:
  • 114. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 113 Reporte1: Reporte2: Reporte3:
  • 115. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 114 Reporte4: Código: Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.ASISXCTableAdapter.Fill(Me.Asistencia_Semana_SistémicaDataSet5.ASISXC) Me.CONFERENCIASTableAdapter1.Fill(Me.Asistencia_Semana_SistémicaDataSet3.CONFERE NCIAS)
  • 116. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN APLICADA I 115 Me.CONFERENCIASTableAdapter.Fill(Me.Asistencia_Semana_SistémicaDataSet1.CONFERE NCIAS) Me.PARTICIPANTESTableAdapter.Fill(Me.Asistencia_Semana_SistémicaDataSet.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_SistémicaDataSet2.ASIS, ComboBox1.SelectedValue) Me.ReportViewer3.RefreshReport() End Sub End Class  Una consulta que nos lleve a otro formulario: o Formulario 1:
  • 117. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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:
  • 118. Manual de Visual Basic Parte II 2012 Estrada Aguilar, Karen Johana | PROGRAMACIÓN 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