Consultas en .Net

Page 1

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


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.