Vous êtes sur la page 1sur 11

 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

 
 
  Visual Studio Net 
 
 
 
 
 
Consultas con SQL Server 
Aplicaciones Windows 
Prof: Allende Aguilar; Franklin 

FrankDocNet

1/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

Consultas con SQL Server

Objetivos:
9 Conocer la secuencia de Objetos
9 Funciones de cada objeto
9 Formas de Uso
9 Casos practicos

Introducción
Todo sistema de Negocio nos tiene que brindar información en tiempo real,
para que nos ayuden en la toma de decisiones, permitiéndonos un mejor
desarrollo, por eso nos dedicaremos a crear consultas de las diversas formas,
empezaremos por lo mas básico y terminaremos en consultas con
parámetros.

Cuando trabajamos con una base de datos, debemos saber la secuencia de


objetos que debemos crear, eh aquí un gráfico para que entiendan mejor

Cada objeto tiene una función especifica en el proceso, entonces empecemos


a describir la función de cada objeto:

Connection: En el debemos establecer con que servidor vamos a trabajar,


con que base de datos trabajaremos como también de que modo nos
conectaremos (autenticación de Windows o SQL).

Command: En este control estableceremos que es lo que realmente


deseamos hacer en la base de datos, es aquí, donde pondremos el código
SQL (Select, Insert, Update, Delete). Si lo que hemos escritos en el
command es mantenimiento de datos (Insert, Update, Delete) entonces lo
que falta es simplemente ejecutar el comando (ExecuteNonQuery) y
terminamos el proceso; en cambio si en el command escribimos una consulta
(Select) tenemos que crear otros objetos (DataAdapter, DataTable); cabe
aclarar que en esta parte también haremos uso del Objeto Parameters
cuando lo requiramos.

2/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

DataAdapter: Es el control encargado de traer y llevar datos a la base de


datos, en este caso le encargaremos que nos traiga las consultas que
escribiremos en le command.

DataTable o DataSet: Son contenedores de datos, en ella el DataAdapter


se encargara de descargar los datos encargados. El DataTable solo nos
almacena una consulta y un DataSet nos almacena varias consultas, para
que entiendan mejor, un DataSet es un conjunto de DataTables.
Dependiendo de nuestras necesidades daremos uso a estos contenedores de
datos.

Cuando hablamos de objetos Connection, Command, DataAdapter y


Parameters hablamos genéricamente, esto dependerá del proveedor de datos
que vamos a utilizar: Si es SqlClient entonces será SqlConnection,
SqlCommand, etc y si es OLEDB entonces será OledbConnection,
OledbCommand, etc respectivamente.

Nota: Para empezar a desarrollar la practica deberá tener instalado SQL Server y en ella
deberá tener la Base de Datos Northwind, caso contrario consulte con su Instructor.

Entonces empecemos a desarrollar la practica programada

1.- Creara un proyecto de Aplicación Windows de Nombre Consultas con SQL


Server

2.- En el Form1 cree el siguiente diseño

Nota: Para cada formulario que diseñemos Ud. Deberá poner sus nombres respectivos a
cada control respetando las normas, así mismo cabe indicar que para cada formulario Ud.
deberá hacer el Imports del SqlClient.

3/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

3.- Agregue el siguiente código:

Objeto: BtnProducts Evento: Click


'Creamos el Objeto Conection para conectarnos a la Base de Datos de SQL
Dim Cn As New SqlConnection("Server=(local);DataBase=Northwind;Integrated
Security=True")
'Creamos el objeto Command para escribir el codigo Transact SQL
Dim Cmd As New SqlCommand("Select * from Products", Cn)
'Creamos el objeto DataAdapter para que nos traiga los Datos
Dim Da As New SqlDataAdapter(Cmd)
'Creamos nuestro almacenb de datos
Dim Dt As New DataTable
'Descargamos los datos en le almacen
Da.Fill(Dt)
'Mostramos los datos en la grilla
Me.DgvDatos.DataSource = Dt

4.- Completar para cada botón la consulta respectiva, el SqlConnection lo


haremos para cada botón por estar en usa fase de aprendizaje, para que se
nos quede en el subconsciente.

5.- Agregar un nuevo formulario, dejemos con el nombre por defecto


(Form2).

6.- Diseñarlo de esta forma. Lo que vamos hacer primero es cargar los datos
de la tabla categoría al ComoBox, luego cuando haga click en el botón Ver
Productos mostrare los productos que pertenezcan a la categoría
seleccionada en el ComboBox.

7.- Agregar los siguientes códigos.

4/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

Objeto: Form2 Evento: Declaraciones


'Creamos el Objeto Conection para conectarnos a la Base de Datos de SQL
Dim Cn As New SqlConnection("Server=(local);DataBase=Northwind;Integrated
Security=True")

Objeto: Form2 Evento: Load


'Cargamos los datos en el ComboBox
Dim Cmd As New SqlCommand("Select CategoryId,CategoryName from Categories",
Cn)
Dim Da As New SqlDataAdapter(Cmd)
Dim Dt As New DataTable
Da.Fill(Dt)
'Mostramos los datos en el ComboBox
Me.CboCategoria.DataSource = Dt
'Designamos el campo interno
Me.CboCategoria.ValueMember = "CategoryId"
'Designamos el campo externo
Me.CboCategoria.DisplayMember = "CategoryName"

Objeto: BtnVerProductos Evento: Click


'Escribo la cosulta en el command a su vez creo un parametro en linea
Dim Cmd As New SqlCommand("Select * from Products where CategoryId=@Cat",
Cn)
'Paso el valor al parametro
Cmd.Parameters.Add("@Cat", SqlDbType.Int).Value =
Me.CboCategoria.SelectedValue
Dim Da As New SqlDataAdapter(Cmd)
Dim Dt As New DataTable
Da.Fill(Dt)
Me.DgvDatos.DataSource = Dt

8.- Agregar un nuevo formulario con el nombre por defecto (Form3). Va


tener el mismo diseño del formulario anterior por lo que ya no mostraremos
el gráfico diseño. En esta parte trabajaremos solo con procedimientos
almacenados.

9.- Habrá el SQL Server, active la base de datos Northwind y cree los
siguientes Procedimientos Almacenados.

Use Northwind
go
Create Procedure UspLisCategoria
as
Select CategoryId,CategoryName from categories
go
Create Procedure UspLisProXCat
@CodCat int
as
Select * from Products where CategoryId=@CodCat 

5/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

10.- Agregaremos los siguientes códigos.

Objeto: Form3 Evento: Declaraciones


'Creamos el Objeto Conection para conectarnos a la Base de Datos de SQL
Dim Cn As New SqlConnection("Server=(local);DataBase=Northwind;Integrated
Security=True")

Objeto: Form3 Evento: Load


'Cargamos los datos en el ComboBox
Dim Cmd As New SqlCommand("UspLisCategoria", Cn)
'Le indicamos que es un Procedimiento almacenado
Cmd.CommandType = CommandType.StoredProcedure
Dim Da As New SqlDataAdapter(Cmd)
Dim Dt As New DataTable
Da.Fill(Dt)
'Mostramos los datos en el ComboBox
Me.CboCategoria.DataSource = Dt
'Designamos el campo interno
Me.CboCategoria.ValueMember = "CategoryId"
'Designamos el campo externo
Me.CboCategoria.DisplayMember = "CategoryName"

Objeto: BtnVerProductos Evento: Click


'Escribo la cosulta en el command
Dim Cmd As New SqlCommand("UspLisProXCat", Cn)
'Le indicamos que es un Procedimiento almacenado
Cmd.CommandType = CommandType.StoredProcedure
'Paso el valor al parametro del Stored Procedure
Cmd.Parameters.Add("@CodCat", SqlDbType.Int).Value =
Me.CboCategoria.SelectedValue
Dim Da As New SqlDataAdapter(Cmd)
Dim Dt As New DataTable
Da.Fill(Dt)
Me.DgvDatos.DataSource = Dt

11.- Agregar un nuevo formulario con nombre por defecto (Form4) que
tendrá el siguiente diseño. En este formulario haremos un navegador de
datos.

6/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

12.- ahora agregaremos los siguientes códigos:

Objeto: Form4 Evento: Declaraciones


Dim Pos As Short
Dim Cn As New SqlConnection("Server=(local);DataBase=Northwind;Integrated
Security=true")
Dim Dt As New DataTable
Sub LlenarDatos()
Me.TxtCodigo.Text = Dt.Rows(Pos).Item("CategoryId")
Me.TxtNombre.Text = Dt.Rows(Pos).Item("CategoryName")
Me.TxtDescripcion.Text = Dt.Rows(Pos).Item("Description")
End Sub

Objeto: Form4 Evento: Load


Dim Cmd As New SqlCommand("Select CategoryId,CategoryName,Description from
Categories", Cn)
Dim Da As New SqlDataAdapter(Cmd)
Da.Fill(Dt)

'Llamamos al procedimiento LlenarDatos


LlenarDatos()

Objeto: BtnPrimero Evento: Click


Pos = 0
'Llamo al prodimiento de llenado
LlenarDatos()

Objeto: BtnAnterior Evento: Click


If Pos > 0 Then
Pos = Pos - 1
End If
'Llamo al prodimiento de llenado
LlenarDatos()

Objeto: BtnSiguiente Evento: Click


If Pos < Dt.Rows.Count - 1 Then
Pos = Pos + 1
End If
'Llamo al prodimiento de llenado
LlenarDatos()

Objeto: BtnAnterior Evento: Click


Pos = Dt.Rows.Count – 1
'Llamo al prodimiento de llenado
LlenarDatos()

13.- Agregar un nuevo Formulario con el nombre por defecto (Form5) y


tendrá le siguiente diseño.

7/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

Nota: El objeto de parecido que un ListBox es un TreeView (TrvDatos).

14.- Agregue los siguientes códigos.

Objeto: Form5 Evento: Declaraciones


Dim Cn As New SqlConnection("Server=(local);DataBase=Northwind;Integrated
Security=true")

Objeto: Form4 Evento: Load


Dim CmdM As New SqlCommand("Select CategoryId,CategoryName from Categories",
Cn)
Dim DaM As New SqlDataAdapter(CmdM)
Dim DtM As New DataTable
DaM.Fill(DtM)

'Llenando datos Maestro al TreeView


Dim M As Short
For M = 0 To DtM.Rows.Count - 1
Me.TrvDatos.Nodes.Add(DtM.Rows(M).Item("CategoryName"))
Dim CodCat As String = DtM.Rows(M).Item("CategoryId")

Dim CmdD As New SqlCommand("Select ProductName from Products where


CategoryId=@CodCat", Cn)
CmdD.Parameters.Add("@CodCat", SqlDbType.Int).Value = CodCat
Dim DaD As New SqlDataAdapter(CmdD)
Dim DtD As New DataTable
DaD.Fill(DtD)

'Llenando Datos Detalle al TreeView


Dim D As Short
For D = 0 To DtD.Rows.Count - 1
Me.TrvDatos.Nodes(M).Nodes.Add(DtD.Rows(D).Item("ProductName"))
Next
Next

Objeto: TrvDatos Evento: AfterSelect

8/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

Me.LblNroReg.Text = Me.TrvDatos.SelectedNode.Nodes.Count

Hasta el momento hemos hecho uso del contenedor de datos DataTable,


como recordando, solo usaremos un DataTable para descargar una consulta,
esta consulta puede ser parte de una tabla, una tabla integra y o de varias
tablas.

El DataSet, lo usaremos para descargar múltiples consultas sabiendo que un


DataSet es un conjunto de DataTables, quiero hacer un incapie en esta
parte, para que sepan cuando usar un DataSet o un DataTable: No usemos
un DataSet para traer una solo consulta, se que esta de moda, pero ten en
cuenta que ocupa mucho espacio en memoria con referencia a un DataTable,
en esta parte final veremos algunos ejemplos con DataSet.

15.- Agregar un nuevo formulario con el nombre por defecto (Form6) y


tendrá el siguiente diseño:

16.- Agregar los siguientes códigos

9/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

Objeto: Form6 Evento: Declaraciones


Dim Cn As New SqlConnection("Server=(local);DataBase=Northwind;Integrated
Security=true")

Objeto: BtnCargarDatos Evento: Click


'Creamos nuestro DataSet
Dim Ds As New DataSet

'Traemos los datos de la tabla Products


Dim CmdP As New SqlCommand("Select * from Products", Cn)
Dim DaP As New SqlDataAdapter(CmdP)

'Traemos los datos de la tabla Customers


Dim CmdC As New SqlCommand("Select * from Customers", Cn)
Dim DaC As New SqlDataAdapter(CmdC)

'Traemos los datos de la tabla Employees


Dim CmdE As New SqlCommand("Select * from Employees", Cn)
Dim DaE As New SqlDataAdapter(CmdE)

'Descago los Datos en el DataSet


DaP.Fill(Ds, "Producto")
DaC.Fill(Ds, "Cliente")
DaE.Fill(Ds, "Empleado")

'Mostramos los datos en los DataGridView


Me.DgvProductos.DataSource = Ds.Tables("Producto")
Me.DgvClientes.DataSource = Ds.Tables("Cliente")
Me.DgvEmpleados.DataSource = Ds.Tables("Empleado")

17.- Agregar un nuevo formulario con nombre por defecto (Form7), que va
tener el mismo diseño del anterior formulario, si no que la forma de trabajo
será diferente usando solo un Command y un DataAdapter.

18.- Agregamos los siguientes códigos.

Objeto: Form7fdfddf Evento: Declaraciones


Dim Cn As New SqlConnection("Server=(local);DataBase=Northwind;Integrated
Security=true")

Objeto: BtnCargarDatos Evento: Click

10/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

 
 

Consultas con SQL Server Aplicaciones Windows (ADO Net) 

'Creamos nuestro DataSet


Dim Ds As New DataSet

'Traemos los datos de la tabla Products, Customers y Employees


Dim Cmd As New SqlCommand("Select * from Products; Select * from Customers ;
Select * from Employees ", Cn)
Dim Da As New SqlDataAdapter(Cmd)

'Descargo los Datos en el DataSet


DaP.Fill(Ds)

'Asignando nombres a la Tablas del DataSet


Ds.Tables(0).TableName=”Producto”
Ds.Tables(1).TableName=”Cliente”
Ds.Tables(2).TableName=”Empleado”

'Mostramos los datos en los DataGridView


Me.DgvProductos.DataSource = Ds.Tables("Producto")
Me.DgvClientes.DataSource = Ds.Tables("Cliente")
Me.DgvEmpleados.DataSource = Ds.Tables("Empleado")

11/11  Prof: Allende Aguilar; Franklin           |            Email: frank_allende@hotmail.com 

Vous aimerez peut-être aussi