BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
Visual 2010 sql server 2008
1. 20/12/2011
UNC MANUAL DE PROGRAMACIÓN APLICADA I
Programación Aplicada I | SALAZAR CACHO, Iris Nohely
2. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
I. BASES DE DATOS Y VISUAL BASIC
Visual Basic no es un administrador de Bases de Datos, sólo utiliza un
gestor de Bases de Datos, para nuestro caso será, Microsoft SQL Server
2008; para permitir la visualización de una manera más estética de los
datos, también 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 Programación 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 colección de clases utilizada para tener acceso a una base de
datos de SQL Server en el espacio administrado.
.2. SqlConnection (Clase):
Representa una conexión abierta con una base de datos de SQL
Server. Esta clase no se puede heredar.
SALAZAR CACHO, Iris Nohely Página 2
3. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
.3. SqlDataAdapter (Clase):
Representa un conjunto de comandos de datos y una conexión 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 asignación de Fill, que cambia
los datos en DataSet para que coincidan con los datos del origen de
datos.
.4. SqlDataAdapter.Fill (Método):
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
colección de objetos DataTable que se pueden relacionar entre
ellos mediante objetos DataRelation.
SALAZAR CACHO, Iris Nohely Página 3
4. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
.6. Ejemplo de conexiones a una Base de Datos:
Dim conex As New SqlConnection("server=.;database = Northwind;
trusted_connection=true")
Conex: Nombre de la conexión a la base de datos.
Server: Es el nombre del servidor; en este caso, la conexión es local, también
podemos escribir (local), localhost; si la conexión no es local, se debe
escribir el nombre propio de dicha conexión.
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
autenticación de Windows.
"Data Source=. ; Initial Catalog = Northwind; Integrated Security= True"
Data Source: Es el nombre del servidor; en este caso, la conexión es local; si la
conexión no es local, se debe escribir el nombre propio de dicha conexión.
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
autenticación de Windows.
SALAZAR CACHO, Iris Nohely Página 4
5. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
PRÁCTICA I
1. VISUALIZAR LOS ESTUDIANTES QUE ESTÁN EN UNA BASE DE
DATOS.
Se tiene la información 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 Página 5
6. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Guardamos el registro de datos de Excel en formato con
extensión csv (delimitado por comas):
Obtendremos lo siguiente (para visualizar el archivo así, es
necesario hacer un clic derecho sobre el archivo y escoger la
opción editar)
SALAZAR CACHO, Iris Nohely Página 6
7. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Para poder obtener sólo los datos de los alumnos, debemos
eliminar la primera fila que corresponde a los encabezados:
Escribiremos el siguiente código SQL Transact para poder
migrar los datos a la tabla:
BULK
INSERT ESTUDIANTES
FROM 'F:UNcPAIalumnos.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 códigos SQL Transact:
select *
from estudiantes
SALAZAR CACHO, Iris Nohely Página 7
8. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN 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 código:
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 Página 8
9. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
2. VISUALIZAR LOS DATOS DE LOS ALUMNOS DESDE LA WEB:
Crearemos un formulario web:
Utilizaremos la herramienta GriedView:
SALAZAR CACHO, Iris Nohely Página 9
10. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
El código 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 Página 10
11. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
3. CREAR UN PROGRAMA QUE PERMITA VISUALIZAR LOS DATOS DE
UN ESTUDIANTE CUYO CÓDIGO ANR SEA INGRESADO MEDIANTE
UN LECTOR DE CÓDIGO 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
Código 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 * 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
SALAZAR CACHO, Iris Nohely Página 11
12. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
NOTA: Cuando el lector de código de barras
lee el código simula un enter al finalizar; es
por eso que en el código en visual se programó
el código bajo la condición del enter.
PRÁCTICA II – TRABAJO DE CICLO
La novena práctica consiste en crear un menú con opciones que nos
permitan visualizar distintas y numerosas consultas a la base de
datos Northwind; así como también hacer algunas modificaciones a
los datos de la misma:
1. REALIZAR UNA CONEXIÓN QUE SIRVA PARA TODOS LOS
FORMULARIOS QUE SE IMPLEMENTARÁN
Es necesario agregar un módulo; para ello, sobre el
proyecto clic derecho y luego elegir la opción agregar;
finalmente clic en la opción módulo:
SALAZAR CACHO, Iris Nohely Página 12
13. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Se nos mostrará la siguiente ventana y tendremos que
escribir un nombre para la conexión, la
denominaremos “GLOBALES”:
SALAZAR CACHO, Iris Nohely Página 13
14. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Finalmente, el código de la conexión 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 Página 14
15. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
3. VISUALIZAR EL NÚMERO DE PRODUCTOS POR CATEGORÍA:
Código 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
Código 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
Código 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 Página 15
16. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
NOTA: El código en visual, que nos
permite mostrar los formularios que
deseamos ver es similar, sólo es necesario
cambiar los nombres de los formularios.
4. REALIZAR UNA CONSULTA QUE PERMITA VER CÓDIGO DEL
PRODUCTO, NOMBRE DEL PRODUCTO, PRECIO DEL PRODUCTO,
STOCK, NOMBRE DEL PROVEEDOR Y CATEGORÍA DEL
PRODUCTO, LAS CATEGORÍAS SE MOSTRARÁN EN UNA LISTA
DESPLEGABLE:
Haremos una conexión especial para la lista
desplegable, seguiremos los siguientes pasos:
a) Clic sobre el triángulo de la esquina superior derecha
de la lista, luego clic en la opción desplegable de
“Origen de Datos” y se nos mostrará la siguiente
ventana, elegiremos entonces la opción “Agregar
origen de datos del proyecto”:
SALAZAR CACHO, Iris Nohely Página 16
17. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
b) Aparecerá la siguiente ventana y luego clic sobre el
botón “Siguiente”
c) En esta ventana, seleccionaremos “Conjunto de
Datos” y luego clic en el botón “Siguiente”:
SALAZAR CACHO, Iris Nohely Página 17
18. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
d) Clic en el botón “Nueva Conexión”
e) Se mostrará una ventana que solicita llenar algunos datos
sobre el tipo de conexión y el nombre de la base de datos a
la que se desea conectar, luego probaremos la conexión
para evitar errores posteriores:
SALAZAR CACHO, Iris Nohely Página 18
19. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
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 Página 19
20. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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
Código 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 Página 20
21. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
5. MOSTRAR LOS SIGUIENTES DATOS DE LOS PRODUCTOS:
NOMBRE, PRECIO, CATEGORÍA Y PROVEEDOR; SÓLO DE LOS
PRODUCTOS QUE ESTÉN DENTRO DE UN RANGO DE PRECIOS:
Código 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
Código 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 Página 21
22. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
6. MOSTRAR NOMBRE, PRECIO, CATEGORÍA Y PROVEEDOR DE
LOS PRODUCTOS QUE EMPIECEN CON UNA DETERMINADA
LETRA:
Código SQL:
create proc query4
@nom varchar(10)
as
select ProductName ,UnitPrice, CategoryID ,SupplierID
from products
where ProductName like @nom+'%'
SALAZAR CACHO, Iris Nohely Página 22
23. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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 Página 23
24. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
7. VISUALIZAR LOS PRODUCTOS QUE PERTENECEN A UN
DETERMINADO PORVEEDOR:
Código 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
Código 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 línea de código carga datos en la tabla
'PAIDataSet1.Suppliers' Puede moverla o quitarla según 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 Página 24
25. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 25
26. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
8. VER LOS DETALLES DE UNA ORDEN DE COMPRA:
Código 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
Código 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 Página 26
27. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
9. PRODUCTOS CON STOCK Y PRODUCTOS SIN STOCK:
Código 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
Código 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 Página 27
28. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 28
29. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
10. MOSTRAR LOS PRODUCTOS VIGENTES Y LOS
DESCONTINUADOS:
Código SQL:
create proc query9
@value as bit
as
select ProductID , ProductName , UnitPrice ,Discontinued
from Products
where Discontinued=@value
Código 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 Página 29
30. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 30
31. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
PRÁCTICA III
CREACIÓN DE LA CONEXIÓN:
Module CONEXIÓN
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 búsqueda 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 búsqueda seleccionado.
Los datos que deben salir en el DatagridView son: ProductId ProductName,
UnitPrice, UnitsInStock, Categoryname, Companyname (Suppliers).
a) DISEÑO:
SALAZAR CACHO, Iris Nohely Página 31
32. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN 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 Página 32
33. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
c) CÓDIGO 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 Página 33
34. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 34
35. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 35
36. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN 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 botón, 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) DISEÑO:
SALAZAR CACHO, Iris Nohely Página 36
37. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN 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 Página 37
38. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
c) CÓDIGO 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 Página 38
39. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
d) PANTALLAS:
SALAZAR CACHO, Iris Nohely Página 39
40. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 40
41. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
3. IMPLEMENTAR LA INTERFACE DEL EJERCICIO 2, ESTA VEZ SIN EL
COMMANDBUTTON, LA BÚSQUEDA SE HARÁ AL SELECCIONAR EL
RADIOBUTTON (EN EL CASO DEL FILTRO DE CATEGORÍA, SE HARÁ CON EL
ENTER DEL TEXTBOX).
a) DISEÑO:
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 Página 41
42. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
c) CÓDIGO 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 Página 42
43. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
d) PANTALLAS:
SALAZAR CACHO, Iris Nohely Página 43
44. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 44
45. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN 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, automáticamente 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) DISEÑO:
SALAZAR CACHO, Iris Nohely Página 45
46. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
b) CÓDIGO 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) CÓDIGO 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 Página 46
47. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
d) PANTALLAS:
SALAZAR CACHO, Iris Nohely Página 47
48. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
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
foránea; esto permite que podamos realizar aplicaciones bajo el mismo
concepto de relación; en la siguiente práctica implementaremos
ejercicios de este tipo; en muchos casos será necesaria la
implementación de dos o más procedimientos almacenados en la Base
de Datos Northwind.
PRÁCTICA IV
1. MOSTRAR CATEGORÍA, NOMBRE DE LA CATEGORÍA Y DESCRIPCIÓN DE LOS
PRODUCTOS, A LA VEZ MOSTRAR TODOS LOS PRODUCTOS QUE
PERTENECEN A CIERTA CATEGORÍA (SE ELEGIRÁ MEDIANTE UN CLIC DE
QUÉ CATEGORÍA DESEAMOS VER LOS PRODUCTOS):
Código SQL:
Mostrar todas las categorías:
create procedure QUERY14
as
select categoryid, categoryname,
description
from Categories
Mostrar productos de una determinada categoría:
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 Página 48
49. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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 Página 49
50. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 50
51. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 51
52. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 52
53. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
2. MOSTRAR LAS ÓRDENES REALIZADAS, LUEGO MOSTRAR LOS DETALLES DE
CIERTA ORDEN (SE SELECCIONARÁ LA ORDEN PARA VER LOS DETALLES):
Código 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 Página 53
54. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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 Página 54
55. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 55
56. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
3. MOSTRAR LA FOTO DE LOS EMPLEADOS, SE MOSTRARÁ LA RELACIÓN DE
EMPLEADOS Y SE SELECCIONARÁ ALGUNO:
Código SQL:
Mostrar la relación de empleados:
CREATE PROCEDURE QUERY16
AS
SELECT EmployeeID , LastName , FirstName
FROM Employees
Mostrar un sólo empleado, utilizamos un parámetro:
CREATE PROCEDURE QUERY16i
@ID INT
AS
SELECT LastName
FROM Employees
WHERE EMPLOYEEID = @ID
Código 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 SettingsIRIS
NOHELYEscritorioimag músican_n" + CStr(index) + ".jpg")
End Sub
End Class
SALAZAR CACHO, Iris Nohely Página 56
57. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 57
58. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 58
59. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 59
60. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
4. MOSTRAR LAS ÓRDENES REALIZADAS POR CIERTO EMPLEADO, SE
PRESENTARÁ LA RELACIÓN DE EMPLEADOS:
Código SQL:
Mostrar la relación 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 Página 60
61. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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 Página 61
62. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 62
63. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 63
64. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
5. MOSTRAR LA RELACIÓN DE EMPLEADOS, LAS ÓRDENES QUE REALIZÓ UN
DETERMINADO EMPLEADO Y LOS PRODUCTOS DE DICHA ORDEN:
Código SQL:
Mostrar la relación 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 Página 64
65. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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 Página 65
66. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 66
67. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 67
68. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
III. FORMULARIOS – HEREDADOS
Visual Studio 2010 nos permite crear formularios que hereden las
características 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 diseño determinado:
SALAZAR CACHO, Iris Nohely Página 68
69. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Clic derecho en el nombre del proyecto para poder agregar un nuevo
elemento; en el explorador de soluciones:
SALAZAR CACHO, Iris Nohely Página 69
70. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Aparecerá la siguiente ventana; en ella debemos elegir la opción Windows
Form, en la opción “Elementos comunes”:
Tendremos las siguientes opciones a elegir; en este caso seleccionaremos
“Formulario Heredado:”
SALAZAR CACHO, Iris Nohely Página 70
71. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Aparecerá la ventana “Selector de Herencia”; aquí debemos elegir de qué
formulario deseamos heredar las características (para el ejemplo será el
formulario renombrado anteriormente como “Plantilla”):
Finalmente, tenemos nuestro nuevo formulario Heredado:
SALAZAR CACHO, Iris Nohely Página 71
72. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
PRÁCTICA 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) Código
nomperso Varchar (30) Nombres
apeperso Varchar (40) Apellidos
email Varchar (50) Correo Electrónico
genero Char (1) Género
estadocivil Char (1) Estado civil
fechanac datetime Fecha de Nacimiento
1. LLENAR DATOS EN LA TABLA PERSONAS, MEDIANTE UNA VENTANA
HECHA EN VISUAL:
Código 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 Página 72
73. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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()
SALAZAR CACHO, Iris Nohely Página 73
74. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 74
75. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
2. MODIFICAR EL MODO DE INGRESO DE LOS DATOS “GÉNERO” Y
“ESTADO CIVIL” DEL EJERCICIO 1:
En el caso de “Género” se deberá ingresar mediante un clic en una
opción de un Radiobutton.
Para “Estado Civil” se seleccionará de una lista desplegable la opción que
deseemos.
Código 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 Página 75
76. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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
SALAZAR CACHO, Iris Nohely Página 76
77. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN 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 TIPO DE DATO REFERENCIA
Idperso (clave primaria) int Código
nomperso Varchar (30) Nombres
apeperso Varchar (40) Apellidos
email Varchar (50) Correo Electrónico
genero Char (1) Género
estadocivil Char (1) Estado civil
fechanac datetime Fecha de Nacimiento
SALAZAR CACHO, Iris Nohely Página 77
78. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
NOTA: Si al querer modificar algún atributo de alguna
tabla nos aparece un mensaje de error, debemos
desactivar la opción “Impedir guardar cambios que
requieran volver a crear tablas”.
SALAZAR CACHO, Iris Nohely Página 78
79. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Para solucionar el inconveniente, antes descrito; seguiremos los
siguientes pasos:
Clic en el menú “Herramientas”, luego elegir la opción “Opciones”:
Aparecerá la siguiente ventana:
SALAZAR CACHO, Iris Nohely Página 79
80. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Elegir la opción “Designers” y desactivar la opción “Impedir
cambios que requieran volver a crear tablas”:
4. INGRESAR REGISTROS EN LA NUEVA TABLA “PERSONAS”.
Código 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 Página 80
81. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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
SALAZAR CACHO, Iris Nohely Página 81
82. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
5. LLENAR REGISTROS DE LA TABLA PERSONAS Y MOSTRARLOS:
Código 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 Página 82
83. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Código 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
SALAZAR CACHO, Iris Nohely Página 83
84. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 84
85. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
6. CREAR LAS SIGUIENTES TABLAS:
“LIBROS”
ATRIBUTO TIPO DE DATO REFERENCIA
IdLibro int Código
Titulo Varchar (30) Título del Libro
IdEditorial int Código de la Editorial
Edicion Char (10) Número de Edición
Año_Publicacion datetime Año de Publicación
IdAutor int Código del Autor
“AUTOR”
ATRIBUTO TIPO DE DATO REFERENCIA
IdAutor int Código
Nombre Varchar (50) Nombre del Autor
Fecha_Nac datetime Fecha de Nacimiento
Pais Char (10) País de Origen
“EDITORIAL”
ATRIBUTO TIPO DE DATO REFERENCIA
IdEditorial int Código
Nombre Varchar (50) Nombre de la Editorial
Pais VarChar (20) País en donde funciona
la Editorial
*Llenar con datos las tablas “AUTOR” y “EDITORIAL”.
SALAZAR CACHO, Iris Nohely Página 85
86. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN 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 CÓDIGO DE AUTOR Y
EDITORIAL RESPECTIVAMENTE:
Código SQL:
CREATE PROCEDURE libro
@t VARCHAR(30,@edit int,@ed CHAR(10),@ap char (10), @idau int
as
insert into libros
(titulo, IDEDITORIAL, edicion, año_publicacion, IDAUTOR)
VALUES (@t,@edit, @ed, @ap , @idau)
Código 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 línea de código carga datos en la tabla 'PAIDataSet5.EDITORIAL' Puede moverla o quitarla
según sea necesario.
Me.EDITORIALTableAdapter.Fill(Me.PAIDataSet5.EDITORIAL)
'TODO: esta línea de código carga datos en la tabla 'PAIDataSet4.AUTOR' Puede moverla o quitarla según
sea necesario.
Me.AUTORTableAdapter.Fill(Me.PAIDataSet4.AUTOR)
End Sub
End Class
SALAZAR CACHO, Iris Nohely Página 86
87. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
CONFIGURAMOS LA CONEXIÓN PARA LA LISTA DESPLEGABLE DE
AUTORES:
Clic en el triángulo desplegable de la esquina superior derecha del
listbox, aparecerá la siguiente ventana:
Clic en la opción “Agregar origen de datos del proyecto”:
SALAZAR CACHO, Iris Nohely Página 87
88. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Clic en el botón “Siguiente”:
SALAZAR CACHO, Iris Nohely Página 88
89. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Clic en el botón “Nueva conexión”:
Probamos la conexión:
SALAZAR CACHO, Iris Nohely Página 89
90. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Se mostrará la siguiente pantalla:
Luego cargarán los datos y seleccionaremos sólo los que vamos a utilizar, en este
caso es la tabla “AUTOR” y de ella sólo necesitaremos los atributos “IdAutor y
Nombre”, luego clic en finalizar:
SALAZAR CACHO, Iris Nohely Página 90
91. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Similar procedimiento se sigue para la conexión 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 Página 91
92. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
PRÁCTICA VI
1. MOSTRAR EN UN FORMULARIO INFORMACIÓN DE LAS CATEGORÍAS DE LA
BASE DE DATOS NORTHWIND; SE PERMITIRÁ AGREGAR OTRAS
CATEGORÍAS; MÁS NO ELIMINARLAS.
Creamos el origen de datos, esta ventana la podemos encontrar cerca
de la ventana herramientas o al presionar las siguiente combinación
Mayus+Alt+D:
Nota: Un Origen de
datos se crea para
todo el proyecto.
SALAZAR CACHO, Iris Nohely Página 92
93. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 93
94. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
SALAZAR CACHO, Iris Nohely Página 94
95. Universidad Nacional de Cajamarca MANUAL DE PROGRAMACIÓN APLICADA I
Diseñamos el Formulario; para ello debemos seguir los siguientes pasos:
SALAZAR CACHO, Iris Nohely Página 95