Está en la página 1de 139

20/12/2011

UNC

MANUAL DE PROGRAMACIN APLICADA I

Programacin Aplicada I

SALAZAR CACHO, Iris Nohely

Universidad Nacional de Cajamarca

I.

MANUAL DE PROGRAMACIN APLICADA 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.

SALAZAR CACHO, Iris Nohely

Pgina 2

Universidad Nacional de Cajamarca

.3.

MANUAL DE PROGRAMACIN APLICADA I

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

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.

Sintaxis:
SqlDataAdapter.Fill(DataSet, String)

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

SALAZAR CACHO, Iris Nohely

Pgina 3

Universidad Nacional de Cajamarca

.6.

MANUAL DE PROGRAMACIN APLICADA I

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.

SALAZAR CACHO, Iris Nohely

Pgina 4

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 5

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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)

SALAZAR CACHO, Iris Nohely

Pgina 6

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

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

Ahora, ya tenemos los datos en una tabla de una base de datos


y podemos ejecutar sobre ellos cdigos SQL Transact:
select *
from estudiantes

SALAZAR CACHO, Iris Nohely

Pgina 7

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 8

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

2. VISUALIZAR LOS DATOS DE LOS ALUMNOS DESDE LA WEB:

Crearemos un formulario web:

Utilizaremos la herramienta GriedView:

SALAZAR CACHO, Iris Nohely

Pgina 9

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 10

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:
CREATE PROC BUSCAR_ALUMNO
@ID CHAR(10)
AS
SELECT * FROM ESTUDIANTES
WHERE IDESTUDIANTE =@ID

Cdigo en visual:

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
idestudiante=@id ", conex2)

from estudiantes where

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

SALAZAR CACHO, Iris Nohely

Pgina 11

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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.

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:

SALAZAR CACHO, Iris Nohely

Pgina 12

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Se nos mostrar la siguiente ventana y tendremos que


escribir un nombre para la conexin, la
denominaremos GLOBALES:

SALAZAR CACHO, Iris Nohely

Pgina 13

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Finalmente, el cdigo de la conexin es:

Module GLOBALES
Public conex As New
System.Data.SqlClient.SqlConnection("server=.;database=northwind;trusted_connection=true")
End Module

2. CREAR UN MEN QUE NOS MUESTRE LAS SIGUIENTES


OPCIONES:
Mantenimiento
Reportes
Consultas
Acerca de

SALAZAR CACHO, Iris Nohely

Pgina 14

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

3. VISUALIZAR EL NMERO DE PRODUCTOS POR CATEGORA:


Cdigo SQL:
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

Cdigo visual, para poder mostrar los datos:


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

Cdigo visual para poder mostrar el formulario que


contiene dichos datos:
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

SALAZAR CACHO, Iris Nohely

Pgina 15

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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.

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
desplegable, seguiremos los siguientes pasos:
a)

lista

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:

SALAZAR CACHO, Iris Nohely

Pgina 16

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 17

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 18

MANUAL DE PROGRAMACIN APLICADA I

Universidad Nacional de Cajamarca

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:

SALAZAR CACHO, Iris Nohely

Pgina 19

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Cdigo SQL:

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

Cdigo en visual:

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

SALAZAR CACHO, Iris Nohely

Pgina 20

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

Cdigo en visual:
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

SALAZAR CACHO, Iris Nohely

Pgina 21

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 22

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 23

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

7. VISUALIZAR LOS PRODUCTOS QUE PERTENECEN A UN


DETERMINADO PORVEEDOR:
Cdigo SQL:

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

Cdigo en Visual:

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

SALAZAR CACHO, Iris Nohely

Pgina 24

MANUAL DE PROGRAMACIN APLICADA I

Universidad Nacional de Cajamarca

SALAZAR CACHO, Iris Nohely

Pgina 25

MANUAL DE PROGRAMACIN APLICADA I

Universidad Nacional de Cajamarca

8. VER LOS DETALLES DE UNA ORDEN DE COMPRA:


Cdigo SQL:

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

Cdigo en visual:
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

SALAZAR CACHO, Iris Nohely

Pgina 26

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

9. PRODUCTOS CON STOCK Y PRODUCTOS SIN STOCK:


Cdigo SQL:

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

Cdigo en Visual:

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

SALAZAR CACHO, Iris Nohely

Pgina 27

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 28

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

10. MOSTRAR
LOS
DESCONTINUADOS:

PRODUCTOS

VIGENTES

LOS

Cdigo SQL:

create proc query9


@value as bit
as
select ProductID , ProductName , UnitPrice ,Discontinued
from Products
where Discontinued=@value

Cdigo Visual:
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

SALAZAR CACHO, Iris Nohely

Pgina 29

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 30

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

PRCTICA III
CREACIN DE LA CONEXIN:
Module CONEXIN
Public conex As New
System.Data.SqlClient.SqlConnection("server=.;database=northwind;trusted_connection=true")
End Module

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:

SALAZAR CACHO, Iris Nohely

Pgina 31

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 32

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

c) CDIGO EN VISUAL:

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)

d) PANTALLAS:

SALAZAR CACHO, Iris Nohely

Pgina 33

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 34

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 35

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 36

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 37

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 38

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

d) PANTALLAS:

SALAZAR CACHO, Iris Nohely

Pgina 39

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 40

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 41

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 42

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

d) PANTALLAS:

SALAZAR CACHO, Iris Nohely

Pgina 43

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 44

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 45

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

b) CDIGO SQL:

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

c) CDIGO VISUAL:

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

SALAZAR CACHO, Iris Nohely

Pgina 46

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

d) PANTALLAS:

SALAZAR CACHO, Iris Nohely

Pgina 47

Universidad Nacional de Cajamarca

II.

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 48

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 49

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 50

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 51

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 52

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 53

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 54

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 55

MANUAL DE PROGRAMACIN APLICADA I

Universidad Nacional de Cajamarca

3. MOSTRAR LA FOTO DE LOS EMPLEADOS, SE MOSTRAR LA RELACIN DE


EMPLEADOS Y SE SELECCIONAR ALGUNO:
Cdigo SQL:

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

Cdigo en Visual:

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

SALAZAR CACHO, Iris Nohely

Pgina 56

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 57

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 58

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 59

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 60

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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.

SALAZAR CACHO, Iris Nohely

Pgina 61

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 62

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 63

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 64

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 65

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 66

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 67

Universidad Nacional de Cajamarca

III.

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 68

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Clic derecho en el nombre del proyecto para poder agregar un nuevo


elemento; en el explorador de soluciones:

SALAZAR CACHO, Iris Nohely

Pgina 69

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 70

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 71

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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
Idperso (clave primaria)

TIPO DE DATO
Char (8)

REFERENCIA
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

SALAZAR CACHO, Iris Nohely

Pgina 72

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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
registros afectados.

=
=
=

de filas o

If respuesta = 1 Then
MessageBox.Show("SE GRAB EL REGISTRO")
LIMPIAR_INGRESO()

SALAZAR CACHO, Iris Nohely

Pgina 73

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 74

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 75

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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
Case 1
ESTADO
Case 2
ESTADO
Case 3
ESTADO

= "S"
= "C"
= "V"
= "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

SALAZAR CACHO, Iris Nohely

Pgina 76

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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
Idperso (clave primaria)

TIPO DE DATO
int

REFERENCIA
Cdigo

nomperso

Varchar (30)

Nombres

apeperso

Varchar (40)

Apellidos

email

Varchar (50)

Correo Electrnico

genero

Char (1)

Gnero

estadocivil

Char (1)

Estado civil

fechanac

SALAZAR CACHO, Iris Nohely

datetime

Fecha de Nacimiento

Pgina 77

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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.

SALAZAR CACHO, Iris Nohely

Pgina 78

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Para solucionar el inconveniente, antes descrito; seguiremos los


siguientes pasos:

Clic en el men Herramientas, luego elegir la opcin Opciones:

Aparecer la siguiente ventana:

SALAZAR CACHO, Iris Nohely

Pgina 79

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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)

SALAZAR CACHO, Iris Nohely

Pgina 80

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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
Case 1
ESTADO
Case 2
ESTADO
Case 3
ESTADO

= "S"
= "C"
= "V"
= "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

SALAZAR CACHO, Iris Nohely

Pgina 81

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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)

SALAZAR CACHO, Iris Nohely

Pgina 82

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

=
=
=
=

""
""
""
""

Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click


insert_per As New SqlCommand("insertar", conex)
respuesta As Integer ' si es 1 se ejecuta si es 2 no se ejecuta el insert
SC As Integer
ESTADO As Char
genero As Char

If RadioButton1.Checked Then
genero = "F"
Else
genero = "M"
End If
SC = ListBox1.SelectedIndex
Select Case SC
Case 0
ESTADO
Case 1
ESTADO
Case 2
ESTADO
Case 3
ESTADO

= "S"
= "C"
= "V"
= "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

SALAZAR CACHO, Iris Nohely

Pgina 83

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 84

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

6. CREAR LAS SIGUIENTES TABLAS:


LIBROS
ATRIBUTO

TIPO DE DATO

IdLibro

int

Titulo

Varchar (30)

IdEditorial

int

REFERENCIA
Cdigo
Ttulo del Libro
Cdigo de la Editorial

Edicion

Char (10)

Nmero de Edicin

Ao_Publicacion

datetime

Ao de Publicacin

IdAutor

int

Cdigo del Autor

AUTOR
ATRIBUTO

TIPO DE DATO

IdAutor

int

Nombre

Varchar (50)

REFERENCIA
Cdigo
Nombre del Autor

Fecha_Nac

datetime

Fecha de Nacimiento

Pais

Char (10)

Pas de Origen

EDITORIAL

ATRIBUTO

TIPO DE DATO

IdEditorial

int

REFERENCIA
Cdigo

Nombre

Varchar (50)

Nombre de la Editorial

Pais

VarChar (20)

Pas en donde funciona


la Editorial

*Llenar con datos las tablas AUTOR y EDITORIAL.

SALAZAR CACHO, Iris Nohely

Pgina 85

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

Cdigo en Visual:

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

SALAZAR CACHO, Iris Nohely

Pgina 86

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 87

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Clic en el botn Siguiente:

SALAZAR CACHO, Iris Nohely

Pgina 88

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Clic en el botn Nueva conexin:

Probamos la conexin:

SALAZAR CACHO, Iris Nohely

Pgina 89

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 90

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 91

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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.

SALAZAR CACHO, Iris Nohely

Pgina 92

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 93

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 94

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Diseamos el Formulario; para ello debemos seguir los siguientes pasos:

SALAZAR CACHO, Iris Nohely

Pgina 95

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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.

SALAZAR CACHO, Iris Nohely

Pgina 96

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 97

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 98

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 99

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 100

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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()
trae una variable y la alamcena en registro

' se utiliza cuando

es una consulta el executereader

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

SALAZAR CACHO, Iris Nohely

Pgina 101

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 102

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 103

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 104

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 105

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 106

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 107

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 108

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

conex)

Dim QUERY As New SqlCommand("SELECT COUNT(*) FROM USUARIO WHERE IDUSUARIO= @U AND PASSWORD = @P",
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

SALAZAR CACHO, Iris Nohely

Pgina 109

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 110

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 111

Universidad Nacional de Cajamarca

IV.

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 112

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Clic en la opcin Reporting y elegir Informe:

Finalmente la ventana para desarrollar le informe est creada:

SALAZAR CACHO, Iris Nohely

Pgina 113

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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:

SALAZAR CACHO, Iris Nohely

Pgina 114

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Aparece la ventana Asistente para la Configuracin de Datos, clic


en Siguiente:

SALAZAR CACHO, Iris Nohely

Pgina 115

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Clic en el botn Nueva Conexin

SALAZAR CACHO, Iris Nohely

Pgina 116

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

En esta ventana escribimos el nombre del servidos y la base de

datos a la que deseamos conectarnos:

Probamos la conexin:

SALAZAR CACHO, Iris Nohely

Pgina 117

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

La siguiente ventana demuestra que est cargando los datos para


poder escoger el correcto:

Elegimos el procedimiento almacenado correcto:

SALAZAR CACHO, Iris Nohely

Pgina 118

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Podemos observar el entorno de dearrollo de un Informe; aqu


podemos usar algunas herramientas para mostrar la informacin:

SALAZAR CACHO, Iris Nohely

Pgina 119

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 120

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Debemos crear un nuevo formulario, en este incluiremos el reporte,


mediante la herramienta Reporte Viewer

SALAZAR CACHO, Iris Nohely

Pgina 121

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

La vista del informe:

SALAZAR CACHO, Iris Nohely

Pgina 122

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Podemos exportar el informe a Excel, PDF o Word:

Elegimos la ruta e, donde deseamos guardar el informe:

SALAZAR CACHO, Iris Nohely

Pgina 123

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Ahora podemos visualizar el informe desde Ms. Word:

SALAZAR CACHO, Iris Nohely

Pgina 124

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

PRCTICA VII
1. MOSTRAR LAS RDENES REALIZADAS POR UN EMPLEADO:
Cdigo SQL:
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

Cdigo en Visual:

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

SALAZAR CACHO, Iris Nohely

Pgina 125

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 126

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

2. MOSTRAR EL TOTAL DE RDENES REALIZADAS POR UN EMPLEADO:


Cdigo SQL:

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

Cdigo Visual:

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

SALAZAR CACHO, Iris Nohely

Pgina 127

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

SALAZAR CACHO, Iris Nohely

Pgina 128

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

CREAR UN SISTEMA DE CONTROL DE ASISTENCIA PARA LA XIISEMANA SISTMICA


1. FORMULARIOS:
MANTENIMIENTO DE INSTITUCIONES EDUCATIVAS:

MANTENIMIENTO DE CONFERENCIAS:

SALAZAR CACHO, Iris Nohely

Pgina 129

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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)

SALAZAR CACHO, Iris Nohely

Pgina 130

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 131

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

BUSCAR UN PARTICIPANTE:

SALAZAR CACHO, Iris Nohely

Pgina 132

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Cdigo SQL:
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+'%'

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

SALAZAR CACHO, Iris Nohely

Pgina 133

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

REGISTRAR ASISTENTES:

SALAZAR CACHO, Iris Nohely

Pgina 134

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 135

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 136

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

REPORTE DE ALUMNOS PARTICIPANTES, ORDENADOS ALFABTICAMENTE:

SALAZAR CACHO, Iris Nohely

Pgina 137

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

Cdigo SQL:
alter procedure asist
as
select IdParticipante, ApePat+' '+ApeMat+'
'+Nombres as Nombre, Email,IdInsti
from PARTICIPANTES
order by ApePat+ApeMat+Nombres

REPORTE DE CONFERENCIAS DICTADAS:

Cdigo SQL:

create proc conf


as
select *
from CONFERENCIAS
order by NombreConfe

SALAZAR CACHO, Iris Nohely

Pgina 138

Universidad Nacional de Cajamarca

MANUAL DE PROGRAMACIN APLICADA I

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

SALAZAR CACHO, Iris Nohely

Pgina 139

También podría gustarte