Sei sulla pagina 1di 139

20/12/2011

Programacin Aplicada I | SALAZAR CACHO, Iris Nohely


UNC
MANUAL DE PROGRAMACIN APLICADA I
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 2
I. BASES DE DATOS Y VISUAL BASIC
Visual Basic no es un administrador de Bases de Datos, slo utiliza un
gestor de Bases de Datos, para nuestro caso ser, Microsoft SQL Server
2008; para permitir la visualizacin de una manera ms esttica de los
datos, tambin para poder mostrar, o realizar algunos cambios en alguna
base de datos.
Es necesario tener conocimiento del concepto de algunas sentencias que
utilizaremos en la segunda parte del curso Programacin Aplicada I:
.1. Espacio de nombres System.Data.SqlClient:
Es el proveedor de datos de .NET Framework para SQL Server. Un
proveedor de datos de .NET Framework para SQL Server describe
una coleccin de clases utilizada para tener acceso a una base de
datos de SQL Server en el espacio administrado.
.2. SqlConnection (Clase):
Representa una conexin abierta con una base de datos de SQL
Server. Esta clase no se puede heredar.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 3
.3. SqlDataAdapter (Clase):
Representa un conjunto de comandos de datos y una conexin de
base de datos que se utilizan para rellenar un DataSet y actualizar
una base de datos de SQL Server. Esta clase no se puede heredar.
SqlDataAdapter, se utiliza como un puente entre DataSet y SQL
Server para recuperar y guardar datos. SqlDataAdapter
proporciona este puente mediante la asignacin de Fill, que cambia
los datos en DataSet para que coincidan con los datos del origen de
datos.
.4. SqlDataAdapter.Fill (Mtodo):
Rellena un objeto DataSet o un objeto DataTable. Agrega filas a
DataSet o las actualiza para hacerlas coincidir con las filas del
origen de datos utilizando los nombres de DataSet y DataTable.
.5. DataSet (Clase):
Representa una cach de memoria interna de datos. DataSet, que
es una cach de memoria interna de datos recuperados de un
origen de datos, representa un componente fundamental de la
arquitectura de ADO.NET. DataSet est compuesto por una
coleccin de objetos DataTable que se pueden relacionar entre
ellos mediante objetos DataRelation.
Sintaxis
Sq|DataAcapterFi||(DataSet, Strin,)
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 4
.6. Ejemplo de conexiones a una Base de Datos:
Dim conex As New SqlConnection("server=.;database = Northwind;
trusted_connection=true")
Conex: Nombre de la conexin a la base de datos.
Server: Es el nombre del servidor; en este caso, la conexin es local, tambin
podemos escribir (local), localhost; si la conexin no es local, se debe
escribir el nombre propio de dicha conexin.
Database: Indica el nombre de la base de datos a la cual se desea conectar.
Trusted_connection: Permite conectarse a la base de datos con el mecanismo de
autenticacin de Windows.
"Data Source=. ; Initial Catalog = Northwind; Integrated Security= True"
Data Source: Es el nombre del servidor; en este caso, la conexin es local; si la
conexin no es local, se debe escribir el nombre propio de dicha conexin.
Initial Catalog: Indica el nombre de la base de datos a la cual se desea conectar.
Integrated Security: Permite conectarse a la base de datos con el mecanismo de
autenticacin de Windows.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 5
PRCTICA I
1. VISUALIZAR LOS ESTUDIANTES QUE ESTN EN UNA BASE DE
DATOS.
Se tiene la informacin en una hoja de Excel y es necesario trasferir
esos datos a SQL, para ello seguiremos los siguientes pasos:
En SQL, creamos la nueva tabla en la base de datos Northwind
(la base de datos es opcional, si se desea se puede crear una
base de datos o crear la tabla en otras bases de datos
existentes) y seleccionamos el tipo de dato adecuado para
cada fila y clave primaria:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 6
Guardamos el registro de datos de Excel en formato con
extensin csv (delimitado por comas):
Obtendremos lo siguiente (para visualizar el archivo as, es
necesario hacer un clic derecho sobre el archivo y escoger la
opcin editar)
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 7
Para poder obtener slo los datos de los alumnos, debemos
eliminar la primera fila que corresponde a los encabezados:
Escribiremos el siguiente cdigo SQL Transact para poder
migrar los datos a la tabla:
Ahora, ya tenemos los datos en una tabla de una base de datos
y podemos ejecutar sobre ellos cdigos SQL Transact:
BULK
INSERT ESTUDIANTES
FROM 'F:\UNc\PAI\alumnos.csv' ruta del archivo
with(
FIELDTERMINATOR=',', Indica que al encontrar una coma ste termina e inicia otro.
ROWTeRMINATOR='\n'
)
select *
from estudiantes
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 8
Luego de tener los datos ya en el gestor SQL, haremos el
trabajo en visual, necesitaremos utilizar la herramienta
DataGriediew y escribiremos el siguiente cdigo:
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=.;database = Northwind;
trusted_connection=true")
Dim datos As New SqlDataAdapter("select * from estudiantes", conex)
Dim ds As New Data.DataSet
datos.Fill(ds, "Alumnos")
DGV1.DataSource = ds.Tables("alumnos")
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 9
2. VISUALIZAR LOS DATOS DE LOS ALUMNOS DESDE LA WEB:
Crearemos un formulario web:
Utilizaremos la herramienta GriedView:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 10
El cdigo en visual ser:
Imports System.Data.SqlClient
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
Dim conex As New SqlConnection("server=.;database = Northwind;
trusted_connection=true")
Dim datos As New SqlDataAdapter("select * from estudianTes", conex)
Dim ds As New Data.DataSet
datos.Fill(ds, "Alumnos")
GridView1.DataSource = ds.Tables("Alumnos")
GridView1.DataBind()
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 11
3. CREAR UN PROGRAMA QUE PERMITA VISUALIZAR LOS DATOS DE
UN ESTUDIANTE CUYO CDIGO ANR SEA INGRESADO MEDIANTE
UN LECTOR DE CDIGO DE BARRAS:
Crearemos un procedimiento almacenado en SQL, para poder
usar el programa las veces que deseemos y para facilitar el
desarrollo de este ejercicio:
Cdigo en visual:
CREATE PROC BUSCAR_ALUMNO
@ID CHAR(10)
AS
SELECT * FROM ESTUDIANTES
WHERE IDESTUDIANTE =@ID
Imports System.Data.SqlClient
Public Class Form3
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs)
Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Dim conex2 As New SqlConnection("server=.; database=northwind;
trusted_connection=true ")
Dim traerdatos As New SqlDataAdapter("select * from estudiantes where
idestudiante=@id ", conex2)
traerdatos.SelectCommand.Parameters.Add("@id", SqlDbType.Char,10).Value =
TextBox1.Text
Dim contenedordatos As New Data.DataSet
traerdatos.Fill(contenedordatos, "Alumnos")
DataGridView1.DataSource = contenedordatos.Tables("Alumnos")
End If
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 12
PRCTICA II TRABAJO DE CICLO
La novena prctica consiste en crear un men con opciones que nos
permitan visualizar distintas y numerosas consultas a la base de
datos Northwind; as como tambin hacer algunas modificaciones a
los datos de la misma:
1. REALIZAR UNA CONEXIN QUE SIRVA PARA TODOS LOS
FORMULARIOS QUE SE IMPLEMENTARN
Es necesario agregar un mdulo; para ello, sobre el
proyecto clic derecho y luego elegir la opcin agregar;
finalmente clic en la opcin mdulo:
NOTA: Cuando el lector de cdigo de barras
lee el cdigo simula un enter al finalizar; es
por eso que en el cdigo en visual se program
el cdigo bajo la condicin del enter.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 13
Se nos mostrar la siguiente ventana y tendremos que
escribir un nombre para la conexin, la
denominaremos GLOBALES:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 14
Finalmente, el cdigo de la conexin es:
2. CREAR UN MEN QUE NOS MUESTRE LAS SIGUIENTES
OPCIONES:
Mantenimiento
Reportes
Consultas
Acerca de
Module GLOBALES
Public conex As New
System.Data.SqlClient.SqlConnection("server=.;database=northwind;trusted_connection=true")
End Module
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 15
3. VISUALIZAR EL NMERO DE PRODUCTOS POR CATEGORA:
Cdigo SQL:
Cdigo visual, para poder mostrar los datos:
Cdigo visual para poder mostrar el formulario que
contiene dichos datos:
CREATE PROC QUERY1
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
Imports System.Data.SqlClient
Public Class consulta01
Private Sub consulta01_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim datos As New SqlDataAdapter("QUERY1", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.Fill(ds, "QUERY1")
dg.DataSource = ds.Tables("QUERY1")
End Sub
End Class
Private Sub ProductosPorCategoriaToolStripMenuItem_Click(sender As System.Object,
e As System.EventArgs) Handles ProductosPorCategoriaToolStripMenuItem.Click
Dim Fm As New consulta01
Fm.MdiParent = Me
Fm.Show()
End Sub
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 16
4. REALIZAR UNA CONSULTA QUE PERMITA VER CDIGO DEL
PRODUCTO, NOMBRE DEL PRODUCTO, PRECIO DEL PRODUCTO,
STOCK, NOMBRE DEL PROVEEDOR Y CATEGORA DEL
PRODUCTO, LAS CATEGORAS SE MOSTRARN EN UNA LISTA
DESPLEGABLE:
Haremos una conexin especial para la lista
desplegable, seguiremos los siguientes pasos:
a) Clic sobre el tringulo de la esquina superior derecha
de la lista, luego clic en la opcin desplegable de
Origen de Datos y se nos mostrar la siguiente
ventana, elegiremos entonces la opcin Agregar
origen de datos del proyecto:
NOTA: El cdigo en visual, que nos
permite mostrar los formularios que
deseamos ver es similar, slo es necesario
cambiar los nombres de los formularios.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 17
b) Aparecer la siguiente ventana y luego clic sobre el
botn Siguiente
c) En esta ventana, seleccionaremos Conjunto de
Datos y luego clic en el botn Siguiente:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 18
d) Clic en el botn Nueva Conexin
e) Se mostrar una ventana que solicita llenar algunos datos
sobre el tipo de conexin y el nombre de la base de datos a
la que se desea conectar, luego probaremos la conexin
para evitar errores posteriores:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 19
f) Se nos presentar la siguiente ventana, en la cual, debemos
elegir que objetos deseamos tener en el conjunto de datos:
g) Finalmente, tendremos especial cuidado al seleccionar qu
datos debemos seleccionar en las etiquetas: Si la etiqueta es
Mostrar Miembro hace referencia a lo que se va a mostrar;
pero si la etiqueta es Miembro de valor lo que contiene son
los valores de los datos:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 20
Cdigo SQL:
Cdigo en visual:
create proc query2
@cate int
as
select ProductID ,ProductName ,UnitPrice
,UnitsInStock ,companyname,CategoryID
from Products as p inner join Suppliers as s
on p.SupplierID =s.SupplierID
where CategoryID =@cate
Imports System.Data.SqlClient
Public Class Form3
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, "tablas")
DataGridView1.DataSource = ds.Tables("tablas")
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 21
5. MOSTRAR LOS SIGUIENTES DATOS DE LOS PRODUCTOS:
NOMBRE, PRECIO, CATEGORA Y PROVEEDOR; SLO DE LOS
PRODUCTOS QUE ESTN DENTRO DE UN RANGO DE PRECIOS:
Cdigo SQL:
Cdigo en visual:
create proc query3
@menor int,
@mayor int
as
select ProductName , UnitPrice, CategoryName ,companyname
from Products as p inner join Categories as c
on p.CategoryID =c.CategoryID inner join Suppliers as s
on p.SupplierID =s.SupplierID
where UnitPrice between @menor And @mayor
Imports System.Data.SqlClient
Public Class Form4
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim datos As New SqlDataAdapter("query3", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@menor", SqlDbType.Int).Value = TextBox1.Text
datos.SelectCommand.Parameters.Add("@mayor", SqlDbType.Int).Value = TextBox2.Text
Dim ds As New Data.DataSet
datos.Fill(ds, "t")
DataGridView1.DataSource = ds.Tables(0)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 22
6. MOSTRAR NOMBRE, PRECIO, CATEGORA Y PROVEEDOR DE
LOS PRODUCTOS QUE EMPIECEN CON UNA DETERMINADA
LETRA:
Cdigo SQL:
create proc query4
@nom varchar(10)
as
select ProductName ,UnitPrice, CategoryID ,SupplierID
from products
where ProductName like @nom+'%'
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 23
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Form5
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles
TextBox1.KeyPress
Dim datos As New SqlDataAdapter("query4", conex)
datos.SelectCommand.CommandType =
CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@nom",
SqlDbType.NVarChar, 10).Value = TextBox1.Text
Dim ds As New Data.DataSet
datos.Fill(ds, "productitos")
DataGridView1.DataSource = ds.Tables(0)
End Sub
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 24
7. VISUALIZAR LOS PRODUCTOS QUE PERTENECEN A UN
DETERMINADO PORVEEDOR:
Cdigo SQL:
Cdigo en Visual:
create proc query5
@id int
as
select ProductName ,UnitPrice ,UnitsInStock
,s.SupplierID, s.CompanyName
from Products as p inner join Suppliers as s
on p.SupplierID =s .SupplierID
where s.SupplierID = @id
Imports System.Data.SqlClient
Public Class Form6
Private Sub Form6_Load(sender As System.Object, e As System.EventArgs)
Handles MyBase.Load
'TODO: esta lnea de cdigo carga datos en la tabla
'PAIDataSet1.Suppliers' Puede moverla o quitarla segn sea necesario.
Me.SuppliersTableAdapter1.Fill(Me.PAIDataSet1.Suppliers)
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As
System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim datos As New SqlDataAdapter("query5", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value =
ListBox1.SelectedValue
Dim ds As New Data.DataSet
datos.Fill(ds, "prod")
DataGridView1.DataSource = ds.Tables(0)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 25

Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I


S A L A Z A R C A C H O , I r i s N o h e l y Pgina 26
8. VER LOS DETALLES DE UNA ORDEN DE COMPRA:
Cdigo SQL:
Cdigo en visual:
create proc query6
@oid as int
as
select od.OrderID,p.ProductId,ProductName ,p.UnitPrice ,Quantity
from Orders as o inner join [Order Details] as od
on o.OrderID =od.OrderID inner join Products as p
on od.ProductID =p.ProductID
where od.OrderID =@oid
Imports System.Data.SqlClient
Public Class Form7
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim datos As New SqlDataAdapter("query6", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@oid", SqlDbType.Int).Value = TextBox1.Text
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 27
9. PRODUCTOS CON STOCK Y PRODUCTOS SIN STOCK:
Cdigo SQL:
Cdigo en Visual:
Productos con stock:
create proc query8
as
select ProductID ,ProductName ,UnitPrice ,UnitsInStock
from Products
where UnitsInStock > 0
Productos sin stock:
create proc query8
as
select ProductID ,ProductName ,UnitPrice ,UnitsInStock
from Products
where UnitsInStock = 0
Imports System.Data.SqlClient
Public Class Form8
Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As
System.EventArgs) Handles RadioButton1.CheckedChanged
Dim datos As New SqlDataAdapter("query7", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End Sub
Private Sub RadioButton2_CheckedChanged(sender As System.Object, e As
System.EventArgs) Handles RadioButton2.CheckedChanged
Dim datos As New SqlDataAdapter("query8", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End Sub
Private Sub Form8_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 28
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 29
10. MOSTRAR LOS PRODUCTOS VIGENTES Y LOS
DESCONTINUADOS:
Cdigo SQL:
Cdigo Visual:
create proc query9
@value as bit
as
select ProductID , ProductName , UnitPrice ,Discontinued
from Products
where Discontinued=@value
Public Class Form9
Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs)
Handles CheckBox1.CheckedChanged
Dim datos As New SqlDataAdapter("query9", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@value", SqlDbType.Bit).Value = CheckBox1.Checked
Dim ds As New Data.DataSet
datos.Fill(ds, "a")
DataGridView1.DataSource = ds.Tables("a")
End Sub
End Class
Imports System.Data.SqlClient
Public Class Form9
Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles
CheckBox1.CheckedChanged
Dim valor As Integer
If CheckBox1.Checked Then
valor = 1
Else
valor = 0
End If
Dim datos As New SqlDataAdapter("query9", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@value", SqlDbType.Bit).Value = valor
Dim ds As New Data.DataSet
datos.Fill(ds, "a")
DataGridView1.DataSource = ds.Tables("a")
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 30
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 31
PRCTICA III
CREACIN DE LA CONEXIN:
1. EN UN LISTBOX O COMBOBOX, COLOCAR EL SIGUIENTE TEXTO (SON LOS
TIPOS DE BUSQUEDA):
Comienza con
Termina con
Contiene a
No contiene a
Exactamente igual a
El proceso es seleccionar un tipo de bsqueda en la Lista, luego escribir un texto en
el TextBox y al darle <ENTER> al TextBox, se debe filtrar el DatagridView por el
nombre del producto, respetando el tipo de bsqueda seleccionado.
Los datos que deben salir en el DatagridView son: ProductId ProductName,
UnitPrice, UnitsInStock, Categoryname, Companyname (Suppliers).
a) DISEO:
Module CONEXIN
Public conex As New
System.Data.SqlClient.SqlConnection("server=.;database=northwind;trusted_connection=true")
End Module
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 32
b) CONSULTA SQL:
create procedure definido
@nombre as nvarchar(40),
@tipo as int
as
if @tipo=0
SELECT ProductId, ProductName, UnitPrice, UnitsInStock,
Categoryname, Companyname
FROM Categories AS C INNER JOIN Products AS P ON C.CategoryID=
P.CategoryID INNER JOIN
Suppliers AS S ON P.SupplierID= S.SupplierID
WHERE ProductName LIKE @NOMBRE+'%'
else if @tipo=1
SELECT ProductId, ProductName, UnitPrice, UnitsInStock,
Categoryname, Companyname
FROM Categories AS C INNER JOIN Products AS P ON C.CategoryID=
P.CategoryID INNER JOIN
Suppliers AS S ON P.SupplierID= S.SupplierID
WHERE ProductName LIKE '%'+@NOMBRE
else if @tipo=2
SELECT ProductId, ProductName, UnitPrice, UnitsInStock,
Categoryname, Companyname
FROM Categories AS C INNER JOIN Products AS P ON C.CategoryID=
P.CategoryID INNER JOIN
Suppliers AS S ON P.SupplierID= S.SupplierID
WHERE ProductName LIKE '%'+@NOMBRE + '%'
else if @tipo=3
SELECT ProductId, ProductName, UnitPrice, UnitsInStock,
Categoryname, Companyname
FROM Categories AS C INNER JOIN Products AS P ON C.CategoryID=
P.CategoryID INNER JOIN
Suppliers AS S ON P.SupplierID= S.SupplierID
WHERE ProductName NOT LIKE '%'+@NOMBRE+'%'
else
SELECT ProductId, ProductName, UnitPrice, UnitsInStock,
Categoryname, Companyname
FROM Categories AS C INNER JOIN Products AS P ON C.CategoryID=
P.CategoryID INNER JOIN
Suppliers AS S ON P.SupplierID= S.SupplierID
WHERE ProductName LIKE @NOMBRE
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 33
c) CDIGO EN VISUAL:
d) PANTALLAS:
Private Sub TextBox1_KeyPress(sender As Object, e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = ChrW(13) Then
Dim datos As New SqlDataAdapter("definido", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@NOMBRE", SqlDbType.NVarChar,
40).Value = TextBox1.Text
datos.SelectCommand.Parameters.Add("@tipo", SqlDbType.Int).Value =
ListBox1.SelectedIndex
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 34
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 35
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 36
2. EN UN GRUPO DE RADIOBUTTON, COLOCAR LOS FILTROS COMO SE MUESTRA
EN LA PANTALLA.
El procedimiento es seleccionar un filtro, luego darle un click en el botn, para
que aparezcan los datos de los Productos en el DataGridView.
Los campos a mostrar en el DataGridView son: ProductName, UnitPrice,
UnitsinStock, CategoryID, Discontinued.
a) DISEO:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 37
b) CONSULTAS SQL:
CREATE PROCEDURE CONSULTA6
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID,
Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON
P.CategoryID = C.CategoryID
WHERE UnitsInStock >0
CREATE PROCEDURE CONSULTA7
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID,
Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON
P.CategoryID = C.CategoryID
WHERE Discontinued = '0'
CREATE PROCEDURE CONSULTA8
@CAT INT
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID,
Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON
P.CategoryID = C.CategoryID
WHERE C.CategoryID =@CAT
ALTER PROCEDURE CONSULTA9
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID,
Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON
P.CategoryID = C.CategoryID
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 38
c) CDIGO EN VISUAL:
Imports System.Data.SqlClient
Public Class SEGUNDO
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)
Handles Button1.Click
If RadioButton1.Checked Then
Dim datos As New SqlDataAdapter("CONSULTA6", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
ElseIf RadioButton2.Checked Then
Dim datos As New SqlDataAdapter("CONSULTA7", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
ElseIf RadioButton3.Checked Then
Dim datos As New SqlDataAdapter("CONSULTA8", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@CAT", SqlDbType.Int).Value =
TextBox1.Text
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
Else
Dim datos As New SqlDataAdapter("CONSULTA9", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End If
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 39
d) PANTALLAS:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 40
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 41
3. IMPLEMENTAR LA INTERFACE DEL EJERCICIO 2, ESTA VEZ SIN EL
COMMANDBUTTON, LA BSQUEDA SE HAR AL SELECCIONAR EL
RADIOBUTTON (EN EL CASO DEL FILTRO DE CATEGORA, SE HAR CON EL
ENTER DEL TEXTBOX).
a) DISEO:
b) CONSULTAS SQL:
CREATE PROCEDURE CONSULTA6
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID, Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON P.CategoryID = C.CategoryID
WHERE UnitsInStock >0
CREATE PROCEDURE CONSULTA7
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID, Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON P.CategoryID = C.CategoryID
WHERE Discontinued = '0'
CREATE PROCEDURE CONSULTA8
@CAT INT
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID, Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON P.CategoryID = C.CategoryID
WHERE C.CategoryID =@CAT
ALTER PROCEDURE CONSULTA9
AS
SELECT ProductName, UnitPrice, UnitsinStock, C.CategoryID, Discontinued
FROM PRODUCTS AS P INNER JOIN CATEGORIES AS C ON P.CategoryID = C.CategoryID
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 42
c) CDIGO EN VISUAL:
Imports System.Data.SqlClient
Public Class TERCERO
Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles
RadioButton1.CheckedChanged
If RadioButton1.Checked Then
Dim datos As New SqlDataAdapter("CONSULTA6", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End If
End Sub
Private Sub RadioButton2_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles
RadioButton2.CheckedChanged
If RadioButton2.Checked Then
Dim datos As New SqlDataAdapter("CONSULTA7", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End If
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles
TextBox1.KeyPress
If e.KeyChar = ChrW(13) Then
If RadioButton3.Checked Then
Dim datos As New SqlDataAdapter("CONSULTA8", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@CAT", SqlDbType.Int).Value = TextBox1.Text
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End If
End If
End Sub
Private Sub RadioButton4_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles
RadioButton4.CheckedChanged
If RadioButton4.Checked Then
Dim datos As New SqlDataAdapter("CONSULTA19", conex)
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End If
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 43
d) PANTALLAS:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 44
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 45
4. COLOCAR UN OBJETO MONTHCALENDAR, UN DATAGRIDVIEW Y UN TEXTBOX
(SER TEMPORAL, UNA VEZ SE IMPLEMENTE EL FORMULARIO, SE ELIMINAR)
El GridView debe mostrar: OrderId, OrderDate, ProductName, UnitPrice, Quantity.
Al seleccionar una fecha, automticamente se debe filtrar el DatGridView por el
campo OrderDate, se debe configurar el MonthCalendar, para que la fecha inicie el
01/01/1996 y finalice el 31/12/1997 (fechas del campo OrderDate de la Tabla Orders).
a) DISEO:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 46
b) CDIGO SQL:
c) CDIGO VISUAL:
CREATE PROCEDURE CONSULTA10
@FECHA DATETIME
AS
SELECT O.OrderId, OrderDate, ProductName,
P.UnitPrice, Quantity
FROM Orders AS O INNER JOIN [Order Details] AS OD ON
O.OrderID = OD.OrderID INNER JOIN Products AS P
ON OD.ProductID= P.ProductID
WHERE O.OrderDate = @FECHA
Imports System.Data.SqlClient
Public Class CUARTO
Private Sub MonthCalendar1_DateSelected(sender As
Object, e As System.Windows.Forms.DateRangeEventArgs)
Handles MonthCalendar1.DateSelected
TextBox1.Text = CStr(MonthCalendar1.SelectionStart)
End Sub
Private Sub MonthCalendar1_DateChanged(sender As
System.Object, e As
System.Windows.Forms.DateRangeEventArgs) Handles
MonthCalendar1.DateChanged
Dim datos As New SqlDataAdapter("CONSULTA10",
conex)
datos.SelectCommand.CommandType =
CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@FECHA",
SqlDbType.DateTimeOffset).Value =
MonthCalendar1.SelectionStart
Dim ds As New Data.DataSet
datos.Fill(ds, "p")
DataGridView1.DataSource = ds.Tables(0)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 47
d) PANTALLAS:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 48
II. RELACIONES DE LAS TABLAS EN VISUAL:
En la base de datos Northwind podemos observar que existen tablas
relacionadas y que de algunas de ellas pasa su clave principal como clave
fornea; esto permite que podamos realizar aplicaciones bajo el mismo
concepto de relacin; en la siguiente prctica implementaremos
ejercicios de este tipo; en muchos casos ser necesaria la
implementacin de dos o ms procedimientos almacenados en la Base
de Datos Northwind.
PRCTICA IV
1. MOSTRAR CATEGORA, NOMBRE DE LA CATEGORA Y DESCRIPCIN DE LOS
PRODUCTOS, A LA VEZ MOSTRAR TODOS LOS PRODUCTOS QUE
PERTENECEN A CIERTA CATEGORA (SE ELEGIR MEDIANTE UN CLIC DE
QU CATEGORA DESEAMOS VER LOS PRODUCTOS):
Cdigo SQL:
Mostrar todas las categoras:
create procedure QUERY14
as
select categoryid, categoryname,
description
from Categories
Mostrar productos de una determinada categora:
create procedure QUERY14i
@cat int
as
select productid, productname, unitprice, c.categoryid
from products as p inner join Categories as c
on p.CategoryID = c.CategoryID
where p.CategoryID = @cat
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 49
Cdigo en visual:
Public Class Form14
Private Sub Form14_Load(sender As System.Object, e As System.EventArgs)
Handles MyBase.Load
Dim datos As New SqlDataAdapter("QUERY14", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.Fill(ds, "prod1")
dgv_cab.DataSource = ds.Tables(0)
End Sub
Private Sub dgv_cab_CellEnter(sender As Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_cab.CellEnter
Dim datos As New SqlDataAdapter("QUERY14i", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@cat", SqlDbType.Int).Value =
dgv_cab.Rows(e.RowIndex).Cells(0).Value
datos.Fill(ds, "prod2")
dgv_det.DataSource = ds.Tables(0)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 50
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 51
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 52
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 53
2. MOSTRAR LAS RDENES REALIZADAS, LUEGO MOSTRAR LOS DETALLES DE
CIERTA ORDEN (SE SELECCIONAR LA ORDEN PARA VER LOS DETALLES):
Cdigo SQL:
Mostrar todas las rdenes:
CREATE PROCEDURE QUERY15
AS
SELECT OrdERID, ORDERDATE, FREIGHT
FROM Orders
Mostrar detalles de una determinada orden:
CREATE PROCEDURE QUERY15i
@IDE INT
AS
SELECT OD.ORDERID, O.ORDERDATE, OD.PRODUCTID,
P.PRODUCTNAME, P.UNITPRICE, Quantity
FROM Orders AS O INNER JOIN [Order Details] AS
OD
ON O.OrderID = OD.OrderID
INNER JOIN Products AS P
ON OD.ProductID =
P.ProductID
WHERE O.OrderID = @IDE
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 54
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Form15
Private Sub Form15_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Dim datos As New SqlDataAdapter("QUERY15", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.Fill(ds, "prod1")
dgv_cab.DataSource = ds.Tables(0)
End Sub
Private Sub dgv_cab_CellEnter(sender As Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_cab.CellEnter
Dim datos As New SqlDataAdapter("QUERY15i", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@IDE", SqlDbType.Int).Value =
dgv_cab.Rows(e.RowIndex).Cells(0).Value
datos.Fill(ds, "prod2")
dgv_det.DataSource = ds.Tables(0)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 55
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 56
3. MOSTRAR LA FOTO DE LOS EMPLEADOS, SE MOSTRAR LA RELACIN DE
EMPLEADOS Y SE SELECCIONAR ALGUNO:
Cdigo SQL:
Cdigo en Visual:
Mostrar la relacin de empleados:
CREATE PROCEDURE QUERY16
AS
SELECT EmployeeID , LastName , FirstName
FROM Employees
Mostrar un slo empleado, utilizamos un parmetro:
CREATE PROCEDURE QUERY16i
@ID INT
AS
SELECT LastName
FROM Employees
WHERE EMPLOYEEID = @ID
Imports System.Data.SqlClient
Public Class Form16
Private Sub Form16_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Dim datos As New SqlDataAdapter("QUERY16", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.Fill(ds, "QUERY16")
dgv_cab.DataSource = ds.Tables(0)
End Sub
Private Sub dgv_cab_CellContentClick(sender As System.Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_cab.CellContentClick
Dim datos As New SqlDataAdapter("QUERY16i", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
Dim index As Integer
index = dgv_cab.Rows(e.RowIndex).Cells(0).Value
datos.SelectCommand.Parameters.Add("@ID", SqlDbType.Int).Value = index
datos.Fill(ds, "QUERY16i")
PictureBox1.Image = Image.FromFile("C:\Documents and Settings\IRIS
NOHELY\Escritorio\imag msica\n_n\" + CStr(index) + ".jpg")
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 57
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 58
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 59
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 60
4. MOSTRAR LAS RDENES REALIZADAS POR CIERTO EMPLEADO, SE
PRESENTAR LA RELACIN DE EMPLEADOS:
Cdigo SQL:
Mostrar la relacin de empleados:
CREATE PROCEDURE QUERY17
AS
SELECT EmployeeID , LastName
, FirstName
FROM Employees
Mostrar las rdenes realizadas por un
empleado:
CREATE PROC QUERY17i
@IDE INT
AS
SELECT OrderID , OrderDate ,
E.EmployeeID
FROM Employees AS E INNER JOIN
Orders AS O
ON
E.EmployeeID = O.EmployeeID
WHERE E.EmployeeID = @IDE
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 61
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Form17
Private Sub Form17_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Dim datos As New SqlDataAdapter("QUERY17", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.Fill(ds, "QUERY17")
dgv_cab.DataSource = ds.Tables(0)
End Sub
Private Sub dgv_cab_CellEnter(sender As Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles dgv_cab.CellEnter
Dim datos As New SqlDataAdapter("QUERY17i", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@IDE", SqlDbType.Int).Value =
dgv_cab.Rows(e.RowIndex).Cells(0).Value
datos.Fill(ds, "QUERY17i")
dgv_det.DataSource = ds.Tables(0)
Label2.Text = dgv_cab.Rows(e.RowIndex).Cells(1).Value + " " +
dgv_cab.Rows(e.RowIndex).Cells(2).Value
End Sub
End Class
Nota: para poder ir a un nuevo datagried view a partir de uno debemos tener
en cuenta la siguiente sentencia:
Datagriedview1.Rows(valor).Cells(valor).Value
En donde:
Rows hace referencia a la fila.
Cells hace referencia a la columna.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 62
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 63
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 64
5. MOSTRAR LA RELACIN DE EMPLEADOS, LAS RDENES QUE REALIZ UN
DETERMINADO EMPLEADO Y LOS PRODUCTOS DE DICHA ORDEN:
Cdigo SQL:
Mostrar la relacin de empleados:
CREATE PROCEDURE QUERY17
AS
SELECT EmployeeID , LastName , FirstName
FROM Employees
Mostrar las rdenes realizadas por un empleado:
CREATE PROC QUERY17i
@IDE INT
AS
SELECT OrderID , OrderDate , E.EmployeeID
FROM Employees AS E INNER JOIN Orders AS O
ON E.EmployeeID =
O.EmployeeID
WHERE E.EmployeeID = @IDE
Mostrar los productos y detalles de dicha orden:
CREATE PROCEDURE QUERY17ii
@iden int
as
select o.orderid, p.productid, p.productname,
p.unitprice, quantity
from orders as o inner join [Order Details] as od
on o.orderid= od.orderid
inner join products as p
on od.productid =
p.productid
where od.orderid= @iden
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 65
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Form18
Private Sub Form18_Load(sender As System.Object, e As
System.EventArgs) Handles MyBase.Load
Dim datos As New SqlDataAdapter("QUERY17", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType =
CommandType.StoredProcedure
datos.Fill(ds, "QUERY17")
dgv_cab.DataSource = ds.Tables(0)
End Sub
Private Sub dgv_cab_CellContentClick(sender As System.Object, e
As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgv_cab.CellContentClick
Dim datos As New SqlDataAdapter("QUERY17i", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType =
CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@IDE",
SqlDbType.Int).Value = dgv_cab.Rows(e.RowIndex).Cells(0).Value
datos.Fill(ds, "QUERY17i")
dgv_det.DataSource = ds.Tables(0)
Label2.Text = dgv_cab.Rows(e.RowIndex).Cells(1).Value + " "
+ dgv_cab.Rows(e.RowIndex).Cells(2).Value
End Sub
Private Sub dgv_det_CellContentClick(sender As System.Object, e
As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgv_det.CellContentClick
Dim datos As New SqlDataAdapter("QUERY17ii", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType =
CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@iden",
SqlDbType.Int).Value = dgv_det.Rows(e.RowIndex).Cells(0).Value
datos.Fill(ds, "QUERY17ii")
DataGridView1.DataSource = ds.Tables(0)
Label4.Text = dgv_det.Rows(e.RowIndex).Cells(0).Value
End Sub
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 66
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 67
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 68
III. FORMULARIOS HEREDADOS
Visual Studio 2010 nos permite crear formularios que hereden las
caractersticas que puede poseer otro formulario; a este tipo de
formularios se les denomina Formularios Heredados.
Para crear este tipo de formularios debemos seguir los siguientes pasos:
Crear el formulario plantilla con un diseo determinado:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 69
Clic derecho en el nombre del proyecto para poder agregar un nuevo
elemento; en el explorador de soluciones:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 70
Aparecer la siguiente ventana; en ella debemos elegir la opcin Windows
Form, en la opcin Elementos comunes:
Tendremos las siguientes opciones a elegir; en este caso seleccionaremos
Formulario Heredado:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 71
Aparecer la ventana Selector de Herencia; aqu debemos elegir de qu
formulario deseamos heredar las caractersticas (para el ejemplo ser el
formulario renombrado anteriormente como Plantilla):
Finalmente, tenemos nuestro nuevo formulario Heredado:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 72
PRCTICA V
Crear una tabla en la base de datos Northwind llamada Personas, la tabla
debe contener los siguientes atributos y sus respectivos tipos de datos:
ATRIBUTO TIPO DE DATO REFERENCIA
Idperso (clave primaria) Char (8) Cdigo
nomperso Varchar (30) Nombres
apeperso Varchar (40) Apellidos
email Varchar (50) Correo Electrnico
genero Char (1) Gnero
estadocivil Char (1) Estado civil
fechanac datetime Fecha de Nacimiento
1. LLENAR DATOS EN LA TABLA PERSONAS, MEDIANTE UNA VENTANA
HECHA EN VISUAL:
Cdigo SQL:
Stored Procedure:
create procedure insertar
@id char(10) ,
@NOMBRE VARCHAR(30) ,
@APELLIDOS VARCHAR(40) ,
@CORREO VARCHAR(50) ,
@GEN CHAR(1) ,
@ESTCIV CHAR(1),
@NAC DATETIME
as
insert into personas
VALUES (@id, @NOMBRE,@APELLIDOS, @CORREO, @GEN , @ESTCIV,
@NAC)
SELECT *
FROM personas
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 73
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Form19
Sub LIMPIAR_INGRESO() ' SUBPROGRAMA QUE VA A LIMPIAR TDAS LAS CAJAS
'For Each objeto In Me.Controls
' If TypeOf objeto Is TextBox Then
' objeto.text = Space(0)
' End If
'Next
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox1.Focus()
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)
Handles Button1.Click
Dim insert_per As New SqlCommand("insertar", conex)
Dim respuesta As Integer ' si es 1 se ejecuta si es 2 no se ejecuta el
insert
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("@C", SqlDbType.VarChar, 50).Value =
TextBox4.Text
insert_per.Parameters.Add("@G", SqlDbType.Char, 1).Value =
TextBox5.Text
insert_per.Parameters.Add("@EC", SqlDbType.Char, 1).Value =
TextBox6.Text
insert_per.Parameters.Add("@FN", SqlDbType.DateTime).Value =
TextBox7.Text
conex.Open()
respuesta = insert_per.ExecuteNonQuery ' devuelve el numero de filas o
registros afectados.
If respuesta = 1 Then
MessageBox.Show("SE GRAB EL REGISTRO")
LIMPIAR_INGRESO()
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 74
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 75
2. MODIFICAR EL MODO DE INGRESO DE LOS DATOS GNERO Y
ESTADO CIVIL DEL EJERCICIO 1:
En el caso de Gnero se deber ingresar mediante un clic en una
opcin de un Radiobutton.
Para Estado Civil se seleccionar de una lista desplegable la opcin que
deseemos.
Cdigo SQL:
Stored Procedure:
create procedure insertar
@id char(10) ,
@NOMBRE VARCHAR(30) ,
@APELLIDOS VARCHAR(40) ,
@CORREO VARCHAR(50) ,
@GEN CHAR(1) ,
@ESTCIV CHAR(1),
@NAC DATETIME
as
insert into personas
VALUES (@id, @NOMBRE,@APELLIDOS, @CORREO, @GEN
, @ESTCIV, @NAC)
SELECT *
FROM personas
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 76
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Form20
Sub LIMPIAR_INGRESO() ' SUBPROGRAMA QUE VA A LIMPIAR TDAS LAS CAJAS
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox7.Text = ""
TextBox1.Focus()
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim insert_per As New SqlCommand("insertar", conex)
Dim respuesta As Integer ' si es 1 se ejecuta si es 2 no se ejecuta el insert
Dim genero As Char
If RadioButton1.Checked Then
genero = "F"
Else
genero = "M"
End If
Dim SC As Integer
Dim ESTADO As Char
SC = ListBox1.SelectedIndex
Select Case SC
Case 0
ESTADO = "S"
Case 1
ESTADO = "C"
Case 2
ESTADO = "V"
Case 3
ESTADO = "D"
End Select
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("@C", SqlDbType.VarChar, 50).Value = TextBox4.Text
insert_per.Parameters.Add("@G", SqlDbType.Char, 1).Value = genero
insert_per.Parameters.Add("@EC", SqlDbType.Char, 1).Value = ESTADO
insert_per.Parameters.Add("@FN", SqlDbType.DateTime).Value = TextBox7.Text
conex.Open()
respuesta = insert_per.ExecuteNonQuery
If respuesta = 1 Then
MessageBox.Show("SE GRAB EL REGISTRO")
LIMPIAR_INGRESO()
End If
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 77
3. BORRAR TODOS LOS REGISTRO DE LA TABLA PERSONAS PARA
PODER MODIFICARLA, LA CLAVE PRINCIPAL IDPERSO, DEBER SER UN
ENTERO AUTOINCREMENTABLE (SE INICIALIZA EN 1 Y EL INCREMENTO
ES UNA UNIDAD).
ATRIBUTO TIPO DE DATO REFERENCIA
Idperso (clave primaria) int Cdigo
nomperso Varchar (30) Nombres
apeperso Varchar (40) Apellidos
email Varchar (50) Correo Electrnico
genero Char (1) Gnero
estadocivil Char (1) Estado civil
fechanac datetime Fecha de Nacimiento
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 78
NOTA: Si al querer modificar algn atributo de alguna
tabla nos aparece un mensaje de error, debemos
desactivar la opcin Impedir guardar cambios que
requieran volver a crear tablas.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 79
Para solucionar el inconveniente, antes descrito; seguiremos los
siguientes pasos:
Clic en el men Herramientas, luego elegir la opcin Opciones:
Aparecer la siguiente ventana:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 80
Elegir la opcin Designers y desactivar la opcin Impedir
cambios que requieran volver a crear tablas:
4. INGRESAR REGISTROS EN LA NUEVA TABLA PERSONAS.
Cdigo SQL:
Stored Procedure INSERTAR modificado:
alter procedure insertar
@N VARCHAR(30) ,
@A VARCHAR(40) ,
@C VARCHAR(50) ,
@G CHAR(1) ,
@Ec CHAR(1),
@FN DATETIME
as
insert into personas
(nomperso, apeperso, email, genero, estadocivil, fechanac)
VALUES (@N,@A, @C, @G , @EC, @FN)
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 81
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Form21
Sub LIMPIAR_INGRESO()
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox7.Text = ""
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles
Button1.Click
Dim insert_per As New SqlCommand("insertar", conex)
Dim respuesta As Integer
Dim SC As Integer
Dim ESTADO As Char
Dim genero As Char
If RadioButton1.Checked Then
genero = "F"
Else
genero = "M"
End If
SC = ListBox1.SelectedIndex
Select Case SC
Case 0
ESTADO = "S"
Case 1
ESTADO = "C"
Case 2
ESTADO = "V"
Case 3
ESTADO = "D"
End Select
insert_per.CommandType = CommandType.StoredProcedure
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("@C", SqlDbType.VarChar, 50).Value = TextBox4.Text
insert_per.Parameters.Add("@G", SqlDbType.Char, 1).Value = genero
insert_per.Parameters.Add("@EC", SqlDbType.Char, 1).Value = ESTADO
insert_per.Parameters.Add("@FN", SqlDbType.DateTime).Value = TextBox7.Text
conex.Open()
respuesta = insert_per.ExecuteNonQuery conex.Close()
If respuesta = 1 Then
MessageBox.Show("SE GRAB EL REGISTRO")
LIMPIAR_INGRESO()
End If
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 82
5. LLENAR REGISTROS DE LA TABLA PERSONAS Y MOSTRARLOS:
Cdigo SQL:
alter procedure insertar
@N VARCHAR(30) ,
@A VARCHAR(40) ,
@C VARCHAR(50) ,
@G CHAR(1) ,
@Ec CHAR(1),
@FN DATETIME
as
insert into personas
(nomperso, apeperso, email, genero, estadocivil, fechanac)
VALUES (@N,@A, @C, @G , @EC, @FN)
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 83
Cdigo en Visual:
Imports System.Data.SqlClient
ublic Class Form22
Sub cargar_datos()
Dim datos As New SqlDataAdapter("select * from personas", conex)
Dim ds As New Data.DataSet
datos.Fill(ds, "prod1")
DataGridView1.DataSource = ds.Tables(0)
End Sub
Sub LIMPIAR_INGRESO() ' SUBPROGRAMA QUE VA A LIMPIAR TDAS LAS CAJAS
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox7.Text = ""
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim insert_per As New SqlCommand("insertar", conex)
Dim respuesta As Integer ' si es 1 se ejecuta si es 2 no se ejecuta el insert
Dim SC As Integer
Dim ESTADO As Char
Dim genero As Char
If RadioButton1.Checked Then
genero = "F"
Else
genero = "M"
End If
SC = ListBox1.SelectedIndex
Select Case SC
Case 0
ESTADO = "S"
Case 1
ESTADO = "C"
Case 2
ESTADO = "V"
Case 3
ESTADO = "D"
End Select
insert_per.CommandType = CommandType.StoredProcedure
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("@C", SqlDbType.VarChar, 50).Value = TextBox4.Text
insert_per.Parameters.Add("@G", SqlDbType.Char, 1).Value = genero
insert_per.Parameters.Add("@EC", SqlDbType.Char, 1).Value = ESTADO
insert_per.Parameters.Add("@FN", SqlDbType.DateTime).Value = TextBox7.Text
conex.Open()
respuesta = insert_per.ExecuteNonQuery ' devuelve el numero de filas o registros afectados.
conex.Close()
If respuesta = 1 Then
MessageBox.Show("SE GRAB EL REGISTRO")
LIMPIAR_INGRESO()
cargar_datos()
End If
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 84
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 85
6. CREAR LAS SIGUIENTES TABLAS:
LIBROS
AUTOR
EDITORIAL
*Llenar con datos las tablas AUTOR y EDITORIAL.
ATRIBUTO TIPO DE DATO REFERENCIA
IdLibro int Cdigo
Titulo Varchar (30) Ttulo del Libro
IdEditorial int Cdigo de la Editorial
Edicion Char (10) Nmero de Edicin
Ao_Publicacion datetime Ao de Publicacin
IdAutor int Cdigo del Autor
ATRIBUTO TIPO DE DATO REFERENCIA
IdAutor int Cdigo
Nombre Varchar (50) Nombre del Autor
Fecha_Nac datetime Fecha de Nacimiento
Pais Char (10) Pas de Origen
ATRIBUTO TIPO DE DATO REFERENCIA
IdEditorial int Cdigo
Nombre Varchar (50) Nombre de la Editorial
Pais VarChar (20) Pas en donde funciona
la Editorial
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 86
CREAR UN FORMULARIO QUE PERMITA REGISTRAR LIBROS, SE
MOSTRAR LOS AUTORES Y LAS EDITORIALES EN LISTAS
DESPLEGABLES DE LAS QUE SE OBTENDR EL CDIGO DE AUTOR Y
EDITORIAL RESPECTIVAMENTE:
Cdigo SQL:
Cdigo en Visual:
CREATE PROCEDURE libro
@t VARCHAR(30,@edit int,@ed CHAR(10),@ap char (10), @idau int
as
insert into libros
(titulo, IDEDITORIAL, edicion, ao_publicacion, IDAUTOR)
VALUES (@t,@edit, @ed, @ap , @idau)
Imports System.Data.SqlClient
Public Class Form23
Sub LIMPIAR_INGRESO()
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim insert_per As New SqlCommand("libro", conex)
Dim respuesta As Integer ' si es 1 se ejecuta si es 2 no se ejecuta el insert
insert_per.CommandType = CommandType.StoredProcedure
insert_per.Parameters.Add("@t", SqlDbType.VarChar, 30).Value = TextBox1.Text
insert_per.Parameters.Add("@ed", SqlDbType.Char, 10).Value = TextBox3.Text
insert_per.Parameters.Add("@ap", SqlDbType.Char, 10).Value = TextBox4.Text
insert_per.Parameters.Add("@edit", SqlDbType.Int).Value = ListBox1.SelectedValue
insert_per.Parameters.Add("@idau", SqlDbType.Int).Value = ListBox2.SelectedValue
conex.Open()
respuesta = insert_per.ExecuteNonQuery
conex.Close()
If respuesta = 1 Then
MessageBox.Show("SE REGISTR")
LIMPIAR_INGRESO()
End If
End Sub
Private Sub Form23_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: esta lnea de cdigo carga datos en la tabla 'PAIDataSet5.EDITORIAL' Puede moverla o quitarla
segn sea necesario.
Me.EDITORIALTableAdapter.Fill(Me.PAIDataSet5.EDITORIAL)
'TODO: esta lnea de cdigo carga datos en la tabla 'PAIDataSet4.AUTOR' Puede moverla o quitarla segn
sea necesario.
Me.AUTORTableAdapter.Fill(Me.PAIDataSet4.AUTOR)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 87
CONFIGURAMOS LA CONEXIN PARA LA LISTA DESPLEGABLE DE
AUTORES:
Clic en el tringulo desplegable de la esquina superior derecha del
listbox, aparecer la siguiente ventana:
Clic en la opcin Agregar origen de datos del proyecto:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 88
Clic en el botn Siguiente:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 89
Clic en el botn Nueva conexin:
Probamos la conexin:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 90
Se mostrar la siguiente pantalla:
Luego cargarn los datos y seleccionaremos slo los que vamos a utilizar, en este
caso es la tabla AUTOR y de ella slo necesitaremos los atributos IdAutor y
Nombre, luego clic en finalizar:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 91
Similar procedimiento se sigue para la conexin del listbox de Editoriales, con la
salvedad que se elige los datos de la tabla Editoriales.
Finalmente, las pantallas del nuevo programa:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 92
PRCTICA VI
1. MOSTRAR EN UN FORMULARIO INFORMACIN DE LAS CATEGORAS DE LA
BASE DE DATOS NORTHWIND; SE PERMITIR AGREGAR OTRAS
CATEGORAS; MS NO ELIMINARLAS.
Creamos el origen de datos, esta ventana la podemos encontrar cerca
de la ventana herramientas o al presionar las siguiente combinacin
Mayus+Alt+D:
Nota: Un Origen de
datos se crea para
todo el proyecto.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 93
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 94
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 95
Diseamos el Formulario; para ello debemos seguir los siguientes pasos:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 96
Luego arrastramos la lista Categoras hacia el formulario; se mostrar lo
siguiente:
LOS NOMBRES DE LA CAJA DE TEXTO VARIAN DE ACUERDO AL TIPO DE DATO QUE
EN SU EJECUCIN CONTENDR:
LA CAJA DE TEXTO QUE CORRESPONDE AL CDIGO DE CATEGORA
TIENE POR NOMBRE CategoryIdTextBox.
LA CAJA DE TEXTO QUE CORRESPONDE AL NOMBRE DE CATEGORA
TIENE POR NOMBRE CategoryNameTextBox.
LA CAJA DE TEXTO QUE CORRESPONDE A LA DESCRIPCON TIENE
POR NOMBRE DescriptionTextBox.
La caja de texto que corresponde al Cdigo de la Categora ser modificada,
pues es clave principal y nosotros no podemos modificarla; es entero
autoincrementable.
Modificamos la propiedad READ ONLY, por defecto el valor de esta
propiedad es false, la cambiamos a true.
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 97
Para agregar una nueva categora debemos hacer clic en el siguiente botn:
Escribiremos los datos que nos solicitan, y para guardar dicha informacin
debemos hacer clic en el botn:
Entonces tendremos una nueva categora:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 98
2. MOSTRAR TODOS LOS PRODUCTOS DE UNA CATEGORA:
Agregaremos un nuevo origen de datos; similar al ejercicio
1; para el presente ejemplo elegiremos la tabla categoras.
El cdigo visual que utilizaremos es el siguiente:
Imports System.Data.SqlClient
Public Class Form26
Sub cargar_datos()
Dim datos As New SqlDataAdapter("select productname, unitprice, unitsinstock, categoryid
from products where categoryid=@cate", conex)
datos.SelectCommand.Parameters.Add("@cate", SqlDbType.Int).Value =
CInt(CategoryIDTextBox.Text)
Dim ds As New Data.DataSet
datos.Fill(ds, "detalle")
DataGridView1.DataSource = ds.Tables("detalle")
End Sub
Private Sub CategoriesBindingNavigatorSaveItem_Click(sender As System.Object, e As
System.EventArgs)
Me.Validate()
Me.CategoriesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.NorthwindDataSet11)
End Sub
Private Sub CategoriesBindingNavigatorSaveItem_Click_1(sender As System.Object, e As
System.EventArgs)
Me.Validate()
Me.CategoriesBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.NorthwindDataSet11)
End Sub
Private Sub Form26_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.CategoriesTableAdapter.Fill(Me.NorthwindDataSet11.Categories)
cargar_datos()
End Sub
Private Sub BindingNavigatorMoveNextItem_Click(sender As System.Object, e As System.EventArgs)
Handles BindingNavigatorMoveNextItem.Click, BindingNavigatorMoveLastItem.Click,
BindingNavigatorMovePreviousItem.Click, BindingNavigatorMoveFirstItem.Click
cargar_datos()
End Sub
Private Sub CategoryIDTextBox_TextChanged(sender As System.Object, e As System.EventArgs)
Handles CategoryIDTextBox.TextChanged
cargar_datos()
End Sub
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 99
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 100
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 101
3. MOSTRAR LOS DETALLES DE UN PRODUCTO INGRESADO (CDIGO DEL PRODUCTO)
POR TECLADO (NO UTILIZAR STORED PROCEDURE):
Cdigo Visual:
Imports System.Data.SqlClient
Public Class Form27
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
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()
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 ' utilizado para contar el nmero de filas (registros)
existentes
TextBox2.Text = registro.Item(0) ' referencia al primer campo que se desea mostrar
(productname)
TextBox3.Text = registro.Item(1) ' referencia al segundo campo que se desea mostrar
(unitprice)
TextBox4.Text = registro.Item(2) ' referencia al tercer campo que se desea mostrar
(unitsinstock)
TextBox5.Text = registro.Item(3) ' referencia al cuarto campo que se desea mostrar
(categoryid)
Else
MessageBox.Show("NO EXISTE ESTE PRODUCTO!")
End If
registro.Close()
conex.Close()
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 102
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 103
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 104
4. MOSTRAR EN UN MENSAJE EL NOMBRE DEL PRODUCTO, PRECIO Y STOCK
DE LOS PRODUCTOS DE UN DETERMINADO PROVEEDOR (NO USAR STORED
PROCEDURE, EL CDIGO DEL PROVEEDOR SER INGRESADO POR
TECLADO):
Cdigo Visual:
Imports System.Data.SqlClient
Public Class Form28
Private Sub Button1_Click(sender As System.Object, e As
System.EventArgs) Handles Button1.Click
Dim comando As New SqlCommand("select productname,
unitprice, unitsinstock from products where supplierid= @id",
conex)
comando.Parameters.Add("@id", SqlDbType.Int).Value =
CInt(TextBox1.Text)
Dim registro As SqlDataReader
conex.Open()
registro = comando.ExecuteReader()
Do While registro.Read()
MessageBox.Show(registro.Item(0) + " - " +
CStr(registro.Item(1)) + " - " + CStr(registro.Item(2)))
Loop
registro.Close()
conex.Close()
End Sub
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 105
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 106
5. MOSTRAR LOS PRODUCTOS DE UN PROVEEDOR EN UNA LISTA; EL CDIGO
DEL PROVEEDOR SER INGRESADO POR TECLADO (NO UTILIZAR STORED
PROCEDURE):
Cdigo Visual:
Imports System.Data.SqlClient
Public Class Form29
Private Sub Button1_Click(sender As System.Object, e As
System.EventArgs) Handles Button1.Click
Dim comando As New SqlCommand("select productname,
unitprice, unitsinstock from products where supplierid= @id",
conex)
comando.Parameters.Add("@id", SqlDbType.Int).Value =
CInt(TextBox1.Text)
Dim registro As SqlDataReader
conex.Open()
registro = comando.ExecuteReader()
Do While registro.Read()
ListBox1.Items.Add(registro.Item(0) + " - " +
CStr(registro.Item(1)) + " - " + CStr(registro.Item(2)))
Loop
registro.Close()
conex.Close()
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 107
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 108
6. CREAR UN FORMULARIO QUE PERMITA INGRESAR UN USUARIO Y SU
CLAVE:
Para resolver este ejercicio necesitamos un formulario especial, denominado
Formulario de Inicio de Sesin.
Para obtener este formulario debemos seguir los siguientes pasos:
Clic derecho sobre el nombre del proyecto, en el Explorador de
Soluciones, para poder agregar un nuevo formulario:
Nos aparece la siguiente ventana; elegimos la opcin Windows Form, se
muestran las siguientes opciones:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 109
Elegimos la opcin Formulario de Inicio de Sesin:
Cdigo Visual:
Imports System.Data.SqlClient
Public Class LoginForm30
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Dim QUERY As New SqlCommand("SELECT COUNT(*) FROM USUARIO WHERE IDUSUARIO= @U AND PASSWORD = @P",
conex)
QUERY.Parameters.Add("@U", SqlDbType.VarChar, 20).Value = UsernameTextBox.Text
QUERY.Parameters.Add("@P", SqlDbType.VarChar, 20).Value = PasswordTextBox.Text
conex.Open()
Dim VALOR As Integer
VALOR = QUERY.ExecuteScalar ' ES UN SLO VALOR
conex.Close()
If VALOR = 1 Then
Form1.Show()
Me.Hide()
Else
MessageBox.Show("Usuario y/o Clave incorrectas")
UsernameTextBox.Text = " "
PasswordTextBox.Text = " "
UsernameTextBox.Focus()
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
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 110
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 111
7. PERMITIR CAMBIAR DE CLAVE AL USUARIO EN OTRO FORMULARIO:
Cdigo Visual:
Imports System.Data.SqlClient
Public Class Form31
Private Sub Button1_Click(sender As System.Object, e As
System.EventArgs) Handles Button1.Click
If TextBox3.Text = TextBox4.Text Then
Dim comando As New SqlCommand("update usuario set password =
@NUEVAC where IDusuario = @USER and password=@CA", conex)
comando.Parameters.Add("@NUEVAC", SqlDbType.VarChar,
20).Value = TextBox3.Text
comando.Parameters.Add("@USER", SqlDbType.VarChar, 20).Value
= TextBox1.Text
comando.Parameters.Add("@CA", SqlDbType.VarChar, 20).Value =
TextBox2.Text
conex.Open()
comando.ExecuteNonQuery()
conex.Close()
End If
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 112
IV. REPORTING SERVICES: Visual Studio nos permite crear reportes con
datos tomados de una base de datos.
Los reportes son consultas que deben ser plasmadas en un documento
para su lectura, comprensin e interpretacin.
Para agregar un informe, en Visual Studio 2010 debemos seguir los
siguientes pasos:
Clic derecho sobre el nombre del proyecto (Explorador de
Soluciones) y agregar un nuevo elemento:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 113
Clic en la opcin Reporting y elegir Informe:
Finalmente la ventana para desarrollar le informe est creada:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 114
Una vez creado el informe; debemos crear su origen de datos; es
decir de dnde deseamos obtener la informacin:
Clic en la pestaa Nuevo y elegir Nuevo Origen de Datos:
Se mostrar la ventana Propiedades del Conjunto de Datos, clic
en el botn Nuevo:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 115
Aparece la ventana Asistente para la Configuracin de Datos, clic
en Siguiente:

Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 116
Clic en el botn Nueva Conexin
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 117
En esta ventana escribimos el nombre del servidos y la base de
datos a la que deseamos conectarnos:
Probamos la conexin:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 118
La siguiente ventana demuestra que est cargando los datos para
poder escoger el correcto:
Elegimos el procedimiento almacenado correcto:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 119
Podemos observar el entorno de dearrollo de un Informe; aqu
podemos usar algunas herramientas para mostrar la informacin:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 120
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 121
Debemos crear un nuevo formulario, en este incluiremos el reporte,
mediante la herramienta Reporte Viewer
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 122
La vista del informe:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 123
Podemos exportar el informe a Excel, PDF o Word:
Elegimos la ruta e, donde deseamos guardar el informe:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 124
Ahora podemos visualizar el informe desde Ms. Word:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 125
PRCTICA VII
1. MOSTRAR LAS RDENES REALIZADAS POR UN EMPLEADO:
Cdigo SQL:
Cdigo en Visual:
create procedure sp1
@id int
as
select e.employeeid, orderid, orderdate, customerid
from Employees as e inner join Orders as o
on e.EmployeeID = o.EmployeeID
where e.EmployeeID = @id
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
Private Sub TabPage2_Click(sender As System.Object, e As System.EventArgs) Handles
TabPage2.Click
End Sub
Private Sub EmployeeIDTextBox_TextChanged(sender As System.Object, e As
System.EventArgs) Handles EmployeeIDTextBox.TextChanged
Dim datos As New SqlDataAdapter("sp1", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@id", SqlDbType.Int).Value =
EmployeeIDTextBox.Text
datos.Fill(ds, "s")
DataGridView1.DataSource = ds.Tables(0)
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 126
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 127
2. MOSTRAR EL TOTAL DE RDENES REALIZADAS POR UN EMPLEADO:
Cdigo SQL:
Cdigo Visual:
create procedure sp2
@y int
as
select distinct companyname, YEAR(orderdate) as ao,
COUNT(*) as total
from Customers as c inner join orders as o on c.CustomerID
= o.CustomerID
group by CompanyName , YEAR(OrderDate)
having year(orderdate)=@y
Public Class Form2
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
Me.sp2TableAdapter.Fill(Me.PAIDataSet.sp2, 1996)
Me.ReportViewer1.RefreshReport()
End Sub
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ComboBox1.SelectedIndexChanged
Me.sp2TableAdapter.Fill(Me.PAIDataSet.sp2,
ComboBox1.SelectedValue)
Me.ReportViewer1.RefreshReport()
End Sub
Private Sub ReportViewer1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ReportViewer1.Load
End Sub
Private Sub ComboBox1_SelectedValueChanged(ByVal sender As
Object, ByVal e As System.EventArgs) Handles
ComboBox1.SelectedValueChanged
Me.sp2TableAdapter.Fill(Me.PAIDataSet.sp2,
ComboBox1.SelectedValue)
Me.ReportViewer1.RefreshReport()
End Sub
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 128
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 129
CREAR UN SISTEMA DE CONTROL DE ASISTENCIA PARA LA XII-
SEMANA SISTMICA
1. FORMULARIOS:
MANTENIMIENTO DE INSTITUCIONES EDUCATIVAS:
MANTENIMIENTO DE CONFERENCIAS:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 130
INGRESAR UN NUEVO PARTICIPANTE:
CDIGO SQL:
create procedure insertar
@id char(10) ,
@ap VARCHAR(25) ,
@am VARCHAR(25) ,
@n VARCHAR(25) ,
@e CHAR(45) ,
@s CHAR(1),
@ii int
as
insert into PARTICIPANTES
VALUES (@id, @ap ,@am, @n, @e , @s, @ii)
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 131
Cdigo Visual:
Imports System.Data.SqlClient
Public Class NUEVOS_PARTICIPANTES
Private Sub NUEVOS_PARTICIPANTES_Load(sender As System.Object, e As System.EventArgs) Handles
MyBase.Load
Me.INSTITUCIONESTableAdapter.Fill(Me.SEMANASISTEMICADataSet2.INSTITUCIONES)
End Sub
Sub LIMPIAR_INGRESO()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox1.Focus()
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim datos As New SqlCommand("insertar", conex)
Dim respuesta As Integer
Dim genero As Integer
If RadioButton1.Checked Then
genero = 1
Else
genero = 2
End If
datos.CommandType = CommandType.StoredProcedure
datos.Parameters.Add("@id", SqlDbType.Char, 10).Value = TextBox1.Text
datos.Parameters.Add("@ap", SqlDbType.VarChar, 25).Value = TextBox2.Text
datos.Parameters.Add("@am", SqlDbType.VarChar, 25).Value = TextBox3.Text
datos.Parameters.Add("@n", SqlDbType.VarChar, 25).Value = TextBox4.Text
datos.Parameters.Add("@e", SqlDbType.Char, 45).Value = TextBox5.Text
datos.Parameters.Add("@s", SqlDbType.Char, 1).Value = genero
datos.Parameters.Add("@ii", SqlDbType.Int).Value = ComboBox1.SelectedValue
conex.Open()
respuesta = datos.ExecuteNonQuery
If respuesta = 1 Then
MessageBox.Show("SE GRAB EL REGISTRO")
LIMPIAR_INGRESO()
End If
Dim dat As New SqlDataAdapter("ver", conex)
Dim ds As New Data.DataSet
dat.SelectCommand.CommandType = CommandType.StoredProcedure
dat.Fill(ds, "ver")
DataGridView1.DataSource = ds.Tables(0)
End Sub
Private Sub LinkLabel1_LinkClicked(sender As System.Object, e As
System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
Buscar_Participantes.Show()
End Sub
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 132
BUSCAR UN PARTICIPANTE:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 133
Cdigo SQL:
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Buscar_Participantes
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles TextBox1.TextChanged
If RadioButton1.Checked Then
Dim datos As New SqlCommand("cod", conex)
datos.CommandType = CommandType.StoredProcedure
Dim dat As New SqlDataAdapter("cod", conex)
Dim ds As New Data.DataSet
dat.SelectCommand.CommandType = CommandType.StoredProcedure
dat.SelectCommand.Parameters.Add("@id", SqlDbType.VarChar, 20).Value =
TextBox1.Text
dat.Fill(ds, "T")
DataGridView1.DataSource = ds.Tables(0)
Else
Dim datos As New SqlCommand("apepaternito", conex)
datos.CommandType = CommandType.StoredProcedure
Dim dat As New SqlDataAdapter("apepaternito", conex)
Dim ds As New Data.DataSet
dat.SelectCommand.CommandType = CommandType.StoredProcedure
dat.SelectCommand.Parameters.Add("@a", SqlDbType.VarChar, 25).Value = TextBox1.Text
dat.Fill(ds, "T")
DataGridView1.DataSource = ds.Tables(0)
End If
End Sub
Bsqueda por cdigo:
create procedure cod
@id varchar(20)
as
select *
from PARTICIPANTES
where IdParticipante like @id+'%'
Bsqueda por apellido:
create procedure apepaternito
@a varchar(25)
as
select *
from PARTICIPANTES
where apepat like @a+'%'
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 134
REGISTRAR ASISTENTES:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 135
Cdigo SQL:
Stored procedure para registrar un asistente:
create procedure reg
@f datetime ,
@idp VARCHAR(10) ,
@idc int
as
insert into ASISTENCIA
VALUES (@f, @idp ,@idc)
Stored procedure para buscar a un participante y
registrarlo:
create procedure rr
@text varchar (25)
as
select
IdParticipante,ApePat,ApeMat,Nombres
from PARTICIPANTES
where ApePat like @text
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 136
Cdigo en Visual:
Imports System.Data.SqlClient
Public Class Asistencia
Private Sub Asistencia_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.CONFERENCIASTableAdapter.Fill(Me.SEMANASISTEMICADataSet3.CONFERENCIAS)
End Sub
Sub registrar()
Dim insert_per As New SqlCommand("reg", conex)
Dim respuesta As Integer
insert_per.CommandType = CommandType.StoredProcedure
insert_per.Parameters.Add("@f", SqlDbType.DateTime).Value = DateTime.Now
insert_per.Parameters.Add("@idp", SqlDbType.VarChar, 10).Value = TextBox1.Text
insert_per.Parameters.Add("@idc", SqlDbType.Int).Value = ComboBox1.SelectedValue
conex.Open()
respuesta = insert_per.ExecuteNonQuery
conex.Close()
If respuesta = 1 Then
MessageBox.Show("SE GRAB EL REGISTRO")
End If
Dim datos As New SqlDataAdapter("v", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@i", SqlDbType.Int).Value = ComboBox1.SelectedValue
datos.Fill(ds, "i")
DataGridView1.DataSource = ds.Tables(0)
End Sub
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs)
Handles TextBox1.KeyPress
If e.KeyChar = ChrW(13) Then
registrar()
End If
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles
ComboBox1.SelectedIndexChanged
Label4.Text = CStr(ComboBox1.Text)
End Sub
Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles
TextBox2.TextChanged
Dim datos As New SqlDataAdapter("rr", conex)
Dim ds As New Data.DataSet
datos.SelectCommand.CommandType = CommandType.StoredProcedure
datos.SelectCommand.Parameters.Add("@text", SqlDbType.VarChar, 25).Value = TextBox2.Text
datos.Fill(ds, "i")
DataGridView2.DataSource = ds.Tables(0)
End Sub
Private Sub DataGridView2_CellContentClick(sender As System.Object, e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellContentClick
TextBox1.Text = DataGridView2.Rows(e.RowIndex).Cells(0).Value
End Sub
End Class
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 137
REPORTE DE ALUMNOS PARTICIPANTES, ORDENADOS ALFABTICAMENTE:
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 138
Cdigo SQL:
REPORTE DE CONFERENCIAS DICTADAS:
Cdigo SQL:
alter procedure asist
as
select IdParticipante, ApePat+' '+ApeMat+'
'+Nombres as Nombre, Email,IdInsti
from PARTICIPANTES
order by ApePat+ApeMat+Nombres
create proc conf
as
select *
from CONFERENCIAS
order by NombreConfe
Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIN APLICADA I
S A L A Z A R C A C H O , I r i s N o h e l y Pgina 139
REPORTE DE ASISTENTES POR CONFERENCIA:
Cdigo SQL:
CREATE PROCEDURE PARTCONF
@IDC INT
AS
SELECT P.IdParticipante,ApePat+' '+ApeMat+'
'+Nombres as Nombre
FROM PARTICIPANTES AS P INNER JOIN ASISTENCIA
AS A
ON P.IdParticipante = A.IdParticipante
INNER JOIN CONFERENCIAS AS C
ON A.IdConfe = C.IdConfe
where C.IdConfe = @IDC

Potrebbero piacerti anche