SlideShare una empresa de Scribd logo
1 de 139
Descargar para leer sin conexión
20/12/2011




UNC          MANUAL DE PROGRAMACIÓN APLICADA I




  Programación Aplicada I   |   SALAZAR CACHO, Iris Nohely
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Universidad Nacional de Cajamarca       MANUAL DE PROGRAMACIÓN APLICADA I




                                    




SALAZAR CACHO, Iris Nohely                                                  Página 25
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 28
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 30
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
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 34
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 35
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
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




              d) PANTALLAS:




SALAZAR CACHO, Iris Nohely                                              Página 39
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 40
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




                  d) PANTALLAS:




SALAZAR CACHO, Iris Nohely                                              Página 43
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 44
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




              d) PANTALLAS:




SALAZAR CACHO, Iris Nohely                                              Página 47
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 50
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 51
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 52
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 55
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 57
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 58
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 59
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 62
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 63
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 66
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 67
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
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
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
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
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 74
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
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
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
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
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
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
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
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 84
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
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I



                              Clic en el botón “Siguiente”:




SALAZAR CACHO, Iris Nohely                                              Página 88
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
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
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
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
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 93
Universidad Nacional de Cajamarca   MANUAL DE PROGRAMACIÓN APLICADA I




SALAZAR CACHO, Iris Nohely                                              Página 94
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
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008
Visual 2010 sql server 2008

Más contenido relacionado

La actualidad más candente

Ado.net 2012
Ado.net 2012Ado.net 2012
Ado.net 2012pepelon_k
 
Objeto ado.net
Objeto ado.netObjeto ado.net
Objeto ado.netbarby1820
 
ConexióN De Base De Datos
ConexióN De Base De DatosConexióN De Base De Datos
ConexióN De Base De DatosVerenice Corea
 
SQL Visual Basic 6.0
SQL Visual Basic 6.0SQL Visual Basic 6.0
SQL Visual Basic 6.0odairfunez
 
Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Sabrina Rodriguezpiña
 
Modoconexion
ModoconexionModoconexion
Modoconexionfanyto
 
Active x data object ado.net
Active x data object ado.netActive x data object ado.net
Active x data object ado.netGissela Antohane
 
12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-netLuis Fernando Aguas Bucheli
 
Bases de datos desde visual basic 6.0
Bases de datos desde visual basic 6.0Bases de datos desde visual basic 6.0
Bases de datos desde visual basic 6.0LisbayUrdaneta
 
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-netLuis Fernando Aguas Bucheli
 
Programación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoProgramación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoJosé Antonio Sandoval Acosta
 
13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERT
13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERT13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERT
13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERTLuis Fernando Aguas Bucheli
 
Vb net bd_2005_02
Vb net bd_2005_02Vb net bd_2005_02
Vb net bd_2005_02Paul Taco
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salasLeomarSalas2
 

La actualidad más candente (20)

ADO
ADOADO
ADO
 
Ado.net 2012
Ado.net 2012Ado.net 2012
Ado.net 2012
 
Objeto ado.net
Objeto ado.netObjeto ado.net
Objeto ado.net
 
Ado.net
Ado.netAdo.net
Ado.net
 
Guia no1 ado.net
Guia no1 ado.netGuia no1 ado.net
Guia no1 ado.net
 
Ado.net
Ado.netAdo.net
Ado.net
 
ConexióN De Base De Datos
ConexióN De Base De DatosConexióN De Base De Datos
ConexióN De Base De Datos
 
SQL Visual Basic 6.0
SQL Visual Basic 6.0SQL Visual Basic 6.0
SQL Visual Basic 6.0
 
Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0
 
Modoconexion
ModoconexionModoconexion
Modoconexion
 
Ado.Net
Ado.NetAdo.Net
Ado.Net
 
Active x data object ado.net
Active x data object ado.netActive x data object ado.net
Active x data object ado.net
 
Conexion a bases de datos
Conexion a bases de datosConexion a bases de datos
Conexion a bases de datos
 
12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
12-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
 
Bases de datos desde visual basic 6.0
Bases de datos desde visual basic 6.0Bases de datos desde visual basic 6.0
Bases de datos desde visual basic 6.0
 
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
11-Unidad 2: Aplicaciones Windows Forms-2.3 Ado-net
 
Programación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la infoProgramación de Base de Datos - Unidad 4 Representacion de la info
Programación de Base de Datos - Unidad 4 Representacion de la info
 
13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERT
13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERT13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERT
13-Unidad 3: Operaciones LINQ -3.1 Introducción 3.2 LINQ SELECT 3.3 LINQ INSERT
 
Vb net bd_2005_02
Vb net bd_2005_02Vb net bd_2005_02
Vb net bd_2005_02
 
Informe programacion leomar salas
Informe programacion leomar salasInforme programacion leomar salas
Informe programacion leomar salas
 

Destacado

Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Rodolfo Finochietti
 
Manual Visual Basic .NET SQL Server paso a paso
Manual Visual Basic .NET SQL Server paso a pasoManual Visual Basic .NET SQL Server paso a paso
Manual Visual Basic .NET SQL Server paso a pasoatak
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERDarwin Durand
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)Darwin Durand
 
ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#LUZ ARIZPE
 
Entity Framework ó Linq SQL - Visual Studio 2012
Entity Framework  ó  Linq SQL - Visual Studio 2012Entity Framework  ó  Linq SQL - Visual Studio 2012
Entity Framework ó Linq SQL - Visual Studio 2012Naim Jhon Cruzado Paredes
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónmilenka796
 
MS Visual Studio 2010 y MS SQL 2008 R2
MS Visual Studio 2010 y MS SQL 2008 R2MS Visual Studio 2010 y MS SQL 2008 R2
MS Visual Studio 2010 y MS SQL 2008 R2Action Learning Group
 
Pasos Para Conectar Una Base De Datos En Visual Basic
Pasos Para Conectar Una Base De Datos En Visual BasicPasos Para Conectar Una Base De Datos En Visual Basic
Pasos Para Conectar Una Base De Datos En Visual Basicguest6a4bfb
 
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicPasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicMaybel_Lopez
 
revista base de datos y visual studio
revista base de datos y visual studiorevista base de datos y visual studio
revista base de datos y visual studioJhos Ayneth Suarez
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETNilian Cabral
 
Sistema para el control de ventas e inventarios
Sistema para el control de ventas e inventariosSistema para el control de ventas e inventarios
Sistema para el control de ventas e inventariosAidil Sanchez
 
Operadores del lenguaje
Operadores del lenguajeOperadores del lenguaje
Operadores del lenguajelego70
 

Destacado (20)

Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013
 
Manual Visual Basic .NET SQL Server paso a paso
Manual Visual Basic .NET SQL Server paso a pasoManual Visual Basic .NET SQL Server paso a paso
Manual Visual Basic .NET SQL Server paso a paso
 
Programacion en n capas
Programacion en n capasProgramacion en n capas
Programacion en n capas
 
Visual y sql
Visual y sqlVisual y sql
Visual y sql
 
CONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVERCONEXION VISUAL STUDIO.NET - SQL SERVER
CONEXION VISUAL STUDIO.NET - SQL SERVER
 
Manual visual studio 2010
Manual visual studio 2010Manual visual studio 2010
Manual visual studio 2010
 
SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)SISTEMA DE FACTURACION (Ejemplo desarrollado)
SISTEMA DE FACTURACION (Ejemplo desarrollado)
 
S ti ci_v1_201302
S ti ci_v1_201302S ti ci_v1_201302
S ti ci_v1_201302
 
ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#ConexióN De Una Base De Datos De Sql Con C#
ConexióN De Una Base De Datos De Sql Con C#
 
Entity Framework ó Linq SQL - Visual Studio 2012
Entity Framework  ó  Linq SQL - Visual Studio 2012Entity Framework  ó  Linq SQL - Visual Studio 2012
Entity Framework ó Linq SQL - Visual Studio 2012
 
Practica de visual basic sistema de facturación
Practica de visual basic sistema de facturaciónPractica de visual basic sistema de facturación
Practica de visual basic sistema de facturación
 
MS Visual Studio 2010 y MS SQL 2008 R2
MS Visual Studio 2010 y MS SQL 2008 R2MS Visual Studio 2010 y MS SQL 2008 R2
MS Visual Studio 2010 y MS SQL 2008 R2
 
Pasos Para Conectar Una Base De Datos En Visual Basic
Pasos Para Conectar Una Base De Datos En Visual BasicPasos Para Conectar Una Base De Datos En Visual Basic
Pasos Para Conectar Una Base De Datos En Visual Basic
 
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual BasicPasos Para Crear un Formulario Con Base de Datos En Visual Basic
Pasos Para Crear un Formulario Con Base de Datos En Visual Basic
 
revista base de datos y visual studio
revista base de datos y visual studiorevista base de datos y visual studio
revista base de datos y visual studio
 
Entorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NETEntorno de desarrollo integrado de Visual Basic .NET
Entorno de desarrollo integrado de Visual Basic .NET
 
Sistema para el control de ventas e inventarios
Sistema para el control de ventas e inventariosSistema para el control de ventas e inventarios
Sistema para el control de ventas e inventarios
 
Operadores del lenguaje
Operadores del lenguajeOperadores del lenguaje
Operadores del lenguaje
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Desarrollo web
Desarrollo webDesarrollo web
Desarrollo web
 

Similar a Visual 2010 sql server 2008

Espacio de nombres system.data.sql client
Espacio de nombres system.data.sql clientEspacio de nombres system.data.sql client
Espacio de nombres system.data.sql clientLIZBETH LIZANA CARRASCO
 
Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlROQUE Caldas Dominguez
 
Utilizaciòn de base de datos externas en arcgis.
Utilizaciòn de base de datos externas en arcgis.Utilizaciòn de base de datos externas en arcgis.
Utilizaciòn de base de datos externas en arcgis.poli1971
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspBoris Salleg
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datosPatricia Reyna
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosJosé Antonio Sandoval Acosta
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicgerardd98
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAlfredo Joya
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...José Antonio Sandoval Acosta
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datosJhosy2404
 

Similar a Visual 2010 sql server 2008 (20)

Espacio de nombres system.data.sql client
Espacio de nombres system.data.sql clientEspacio de nombres system.data.sql client
Espacio de nombres system.data.sql client
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Conexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysqlConexión desde una aplicación en java a un bd en mysql
Conexión desde una aplicación en java a un bd en mysql
 
Persistencia de datos
Persistencia de datosPersistencia de datos
Persistencia de datos
 
Ado.net
Ado.netAdo.net
Ado.net
 
Java con base de datos
Java con base  de datosJava con base  de datos
Java con base de datos
 
Utilizaciòn de base de datos externas en arcgis.
Utilizaciòn de base de datos externas en arcgis.Utilizaciòn de base de datos externas en arcgis.
Utilizaciòn de base de datos externas en arcgis.
 
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jspExplicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
Explicacion metodologia 3 capas y base de datos, proyecto de ejemplo jsp
 
Ado.net
Ado.netAdo.net
Ado.net
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Java con Base de Datos
Java con Base de Datos Java con Base de Datos
Java con Base de Datos
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Acceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basicAcceso a datos con ado.net en visual basic
Acceso a datos con ado.net en visual basic
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
ADO .net
ADO .netADO .net
ADO .net
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Diapositivas de ado.net
Diapositivas de ado.netDiapositivas de ado.net
Diapositivas de ado.net
 

Más de Alex Vasquez

S6 inicial-5-dia-1
S6 inicial-5-dia-1S6 inicial-5-dia-1
S6 inicial-5-dia-1Alex Vasquez
 
GNS3 instalación, configuración, ipv4, ipv6
GNS3 instalación, configuración, ipv4, ipv6GNS3 instalación, configuración, ipv4, ipv6
GNS3 instalación, configuración, ipv4, ipv6Alex Vasquez
 
Introduccion a la gestion de proyectos
Introduccion a la gestion de proyectosIntroduccion a la gestion de proyectos
Introduccion a la gestion de proyectosAlex Vasquez
 
Liderazgo en proyectos
Liderazgo en proyectosLiderazgo en proyectos
Liderazgo en proyectosAlex Vasquez
 
Pmi y sus certificaciones
Pmi y sus certificacionesPmi y sus certificaciones
Pmi y sus certificacionesAlex Vasquez
 
Distribución de video con vlc
Distribución de video con vlcDistribución de video con vlc
Distribución de video con vlcAlex Vasquez
 
Manual sqlserver2008 final
Manual sqlserver2008 finalManual sqlserver2008 final
Manual sqlserver2008 finalAlex Vasquez
 
Multiplicador y divisor
Multiplicador y divisorMultiplicador y divisor
Multiplicador y divisorAlex Vasquez
 
Conversión Entre Sistemas de Numeración
Conversión Entre Sistemas de NumeraciónConversión Entre Sistemas de Numeración
Conversión Entre Sistemas de NumeraciónAlex Vasquez
 
Interpretadores de Datos Digitales
Interpretadores de Datos DigitalesInterpretadores de Datos Digitales
Interpretadores de Datos DigitalesAlex Vasquez
 
Elementos Eléctricos y Electrónicos
Elementos Eléctricos y ElectrónicosElementos Eléctricos y Electrónicos
Elementos Eléctricos y ElectrónicosAlex Vasquez
 

Más de Alex Vasquez (14)

S6 inicial-5-dia-1
S6 inicial-5-dia-1S6 inicial-5-dia-1
S6 inicial-5-dia-1
 
GNS3 instalación, configuración, ipv4, ipv6
GNS3 instalación, configuración, ipv4, ipv6GNS3 instalación, configuración, ipv4, ipv6
GNS3 instalación, configuración, ipv4, ipv6
 
Introduccion a la gestion de proyectos
Introduccion a la gestion de proyectosIntroduccion a la gestion de proyectos
Introduccion a la gestion de proyectos
 
Liderazgo en proyectos
Liderazgo en proyectosLiderazgo en proyectos
Liderazgo en proyectos
 
Pmi y sus certificaciones
Pmi y sus certificacionesPmi y sus certificaciones
Pmi y sus certificaciones
 
Distribución de video con vlc
Distribución de video con vlcDistribución de video con vlc
Distribución de video con vlc
 
Gns3 practica
Gns3   practicaGns3   practica
Gns3 practica
 
Manual sqlserver2008 final
Manual sqlserver2008 finalManual sqlserver2008 final
Manual sqlserver2008 final
 
Multiplicador y divisor
Multiplicador y divisorMultiplicador y divisor
Multiplicador y divisor
 
Conversión Entre Sistemas de Numeración
Conversión Entre Sistemas de NumeraciónConversión Entre Sistemas de Numeración
Conversión Entre Sistemas de Numeración
 
Mapas de Karnaugh
Mapas de KarnaughMapas de Karnaugh
Mapas de Karnaugh
 
Codigo Binario
Codigo BinarioCodigo Binario
Codigo Binario
 
Interpretadores de Datos Digitales
Interpretadores de Datos DigitalesInterpretadores de Datos Digitales
Interpretadores de Datos Digitales
 
Elementos Eléctricos y Electrónicos
Elementos Eléctricos y ElectrónicosElementos Eléctricos y Electrónicos
Elementos Eléctricos y Electrónicos
 

Último

HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).hebegris04
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...MagalyDacostaPea
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxFabianValenciaJabo
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfJosé Hecht
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfMaritza438836
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectosTrishGutirrez
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfsolidalilaalvaradoro
 

Último (20)

HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
HISTORIETA: AVENTURAS VERDES (ECOLOGÍA).
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
4° SES COM MAR 09 Leemos una noticia del dengue e identificamos sus partes (1...
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docxEJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
EJEMPLO MODELO DE PLAN DE REFUERZO ESCOLAR.docx
 
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdfMEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
MEDIACIÓN INTERNACIONAL MF 1445 vl45.pdf
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
 
5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos5° Proyecto 13 Cuadernillo para proyectos
5° Proyecto 13 Cuadernillo para proyectos
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
El Bullying.
El Bullying.El Bullying.
El Bullying.
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
BITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdfBITÁCORA DE ESTUDIO DE PROBLEMÁTICA. TUTORÍA V. PDF 2 UNIDAD.pdf
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