Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

ADO.

NET: Trabajando en Forma desconectada

PRACTICA A: ACCESO A DATOS CON ADO.NET

1. LLENANDO UNA TABLA DEL DATA SET MEDIANTE EL DATADAPTER


1.1. Crear una aplicación Windows en Visual en Visual Basic.NET llamada Demo45
1.2. En la ventana del explorador de soluciones seleccionar el archivo Form1 y en la ventana de
propiedades cambiar la propiedad FileName frmListaCategoria
1.3. En el diseñador de formularios Windows, arrastrar un ControlData Gris, luego configurar las
propiedades, tal como se muestra en el siguiente cuadro.
Objeto Propiedad Valor
Form1 Name frmlListaCategorias
Size Width=300, Height=300
StartPosition CenterScreen
Text Lista de Categorías Northwind
DataGrid Name dgdCategoria
Dock Fill

1.4. En la ventana del explorador de soluciones seleccionar el archivo frmListaCategorias, hacer clic
derecho y seleccionar Ver código
1.5. En la parte superior del código (antes de la clase) definir el NameSpace del proveedor de SQL:
Import System.Data.SqlClient
1.6. Codificamos el procedimiento en el evento “Load” del formulario. Así debe quedar el código
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles
MyBase.Load
'Declaramos un variable del tipo SqlConnection pasando como parametro
'la cadena de conexion
Dim con As New SqlConnection("uid=sa;server=IDAT10;database=NorthWind")
'Declaramos una variable del tipo SqlDataAdapter pasando como parametros
'instrucción sql y la conexion usada
Dim dap As New SqlDataAdapter("Select CategoryID, CategoryName From Categories",
con)
'Declaramos una variable tipo DataSet
Dim dst As New DataSet
'Ejecutamos la instrucción Select mediante el métdo Fill del SqlAdapterpasando como
'parametros el DataSet y el nombre de la tabal del DataSet
dap.Fill(dst, "Categories")
dgdCategoria.DataSource = dst.Tables(0)
End Sub

1.7. Configuramos frmListaCategoria como el formulario de


inicio
1.8. Grabar y ejecutar la aplicación pulsando F5
1.9. Investigar.
1.9.1. ¿Investigue propiedades de la clase DataSet
1.9.2. Clase SqlDataAdapter. Propiedades y métodos

Ing. Ricardo Inquilla – 051-52-9639757 – [email protected]


ADO.NET: Trabajando en Forma desconectada

2. CREANDO Y AGREGANDO UNA RELACIÓN EN EL DATASET: Esta demostración tiene por


objeto enseñar a crear dos tablas en un DataSet, luego veremos como crear una relación entre dichas
tablas y agregar la relación al DataSet
2.1. Crear una aplicación Windows en Visual Basic.NET llamada Demo46
2.2. En la ventana del exploradro de soluciones seleccionar el archivo Form1 y en la ventana de
propiedades cambiar la propiedad FileName a frmListaDetallesOrden
2.3. En el diseñador de formularios Windows, arrastrar un control DataGrid, luego configurar las
propiedades, tal como se muestra en el siguiente cuadro

Objeto Propiedad Valor


Form1 Name frmlListaDetallesOrden
Size Width=300, Height=300
StartPosition CenterScreen
Text Lista de Categorías Northwind
DataGrid Name dgdCategoria
Dock Fill

2.4. En la ventana del explorador de soluciones seleccionar el archivo frmListaDetallesOrden, hacer clic
derecho y seleccionar Ver código
2.5. En la parte superior del código (antes de la clase) definir el NameSpace del proveedor de SQL:
Import System.Data.SqlClient
2.6. Codificamos el procedimiento en el evento “Load” del formulario. Así debe quedar el código.
Private Sub frmListaDetallesOrden_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim con As New SqlConnection("uid=sa;pwd=123456;server=INFO1;database=Northwind")
'Declaramos una variable del tipo SqlDataAdapter pasando como parametros
'instrucción sql y la conexion usada
Dim dap As New SqlDataAdapter("", con)
'Declaramos una variable tipo DataSet
Dim dst As New DataSet
'Modifica la propiedad CommanText del objeto SelectCommand del SqlDataAdapter
'para escribir el primer comando
dap.SelectCommand.CommandText = "Select OrderID, OrderDate,EmployeeID From Orders"
'Ejecuta la instrucción Select mediante el método Fill del SqlDataAdapter pasando
como
'parametros el Data Set y el nombre de la primera tabla
dap.Fill(dst, "Ordenes")
'Modifica la propiedad CommanText del objeto SelectCommand del SqlDataAdapter
'para escribir el primer comando
dap.SelectCommand.CommandText = "Select OrderID, ProductID,UnitPrice From [Order
Details]"
'Ejecuta la instrucción Select mediante el método Fill del SqlDataAdapter pasando
como
'parametros el Data Set y el nombre de la segunda tabla
dap.Fill(dst, "Detalles")
'Declara una variable del tipo DataRelation pasando 3 parametros, primero el nombre
de la relacion,
'segundo la columna en la tabla padre y tercero la columna hija
Dim drn As New DataRelation("Detalles_Orden", dst.Tables(0).Columns(0),
dst.Tables(1).Columns(0))
'Agrega la realación creada al DataSet, mediante el método Add de la colección
Relations
dst.Relations.Add(drn)
'Enlaza la tabla padre al DataGrid
dgdDetallesOrden.DataSource = dst.Tables(0)

Ing. Ricardo Inquilla – 051-52-9639757 – [email protected]


ADO.NET: Trabajando en Forma desconectada

'El método Expand permite expander el nodo con el índice de la fila especificada
dgdDetallesOrden.Expand(0)
End Sub

2.7. Investigue:
2.7.1. Clase DataRelacion, Propiedades
3. MANTENIMIENTO DE UNA TABLA DEL DATASET: Esta demostración tiene por objetivo
enseñar a realizar mantenimiento en una tabla del DataSet y luego enviar los cambios realizados por
lotes (Batch)
3.1. Crear un Aplicación Windows en Visual Basic.Net llamada Demo47
3.2. En la ventana del exploradro de soluciones seleccionar el archivo Form1 y en la ventana de
propiedades cambiar la propiedad FileName a frmListaEmpleados
3.3. En el diseñador de forumularios Windows, arrastrar un control DataGrid y 4 Buttons, luego
configurar las propiedades, tal como se muestra en el siguiente cuadro.

Objeto Propiedad Valor


Form1 Name frmlListaEmpleados
FormBorderStyle FixedSigle
MaximizeBox False
MinimizeBox False
Size Width=300, Height=300
StartPosition CenterScreen
Text Lista de Empleados Nortwind
DataGrid Name dgdEmpleado
Location X=16, Y =12
ReadOnly True
Size Width=290, Height=214
Button1 Name btnNuevo
Cursor Hand
Location X=15, Y=238
Size Width=290, Height=214

Ing. Ricardo Inquilla – 051-52-9639757 – [email protected]


ADO.NET: Trabajando en Forma desconectada

Tag 1
Text Nuevo
Button2 Name btnEditar
Cursor Hand
Location X=78, Y=238
Size Width=60, Height=23
Tag 1
Text Nuevo
Button3 Name btnEliminar
Cursor Hand
Location X=14, Y=238
Size Width=60, Heght=23
Tag 3
Text Eliminar
Button4 Name btnEnviarCambios
Cursor Hand
Location X=202, Y=238
Size Width=100, Height=23
Text Enviar Cambios
3.4. Agregar un segundo formulario al proyecto “Project” seleccionar “AddWindowsForm” y escribir
como nombre frmManteEmpleado, luego clic en “Open”
3.5. En el diseñador de formularios Windows, arrastrar un control GroupBox y 2 Buttons, luego
configurar las propiedades, tal como se muestra en el siguiente cuadro.
Objeto Propiedad Valor
Form1 Name frmManteEmpleado
FormBorderStyle FixedSigle
MaximizeBox False
MinimizeBox False
Size Width=300, Height=300
StartPosition CenterScreen
Text
GroupBox1 Name grpEmpleado
Location X=16, Y =12
Size Width=290, Height=214
Text Datos del Empleado
Button1 Name btnAceptar
Cursor Hand
DialogResult Ok
Location X=16, Y=170
Size Width=75, Height=23
Text Aceptar
Button2 Name btnCancelar
Cursor Hand
DialogResult Cancel
Location X=196, Y=170
Size Width=75, Height=23
Text Cancelar

3.6. Sobre el grpEmpleado arrastrar 3 controles Label y 3 TextBox, configurando sus propiedades, tal
como se muestra en el siguiente cuadro:

Ing. Ricardo Inquilla – 051-52-9639757 – [email protected]


ADO.NET: Trabajando en Forma desconectada

Label1 Name lblCodigo


AutoSize True
Location X=20, Y=28
Text Código:
TextBox1 Name txtCodigo
Location X=80, Y=28
ReadOnly True
Size Width=40, Height=20
Text
Label2 Name lblApellido
AutoSize True
Location X=20, Y=64
Text Apellido:
TextBox2 Name txtApellido
Location X=80, Y=60
ReadOnly Width=150, Height=20
Size
Text
Label3 Name lblNombre
AutoSize True
Location X=20, Y=100
Text Nombre:
TextBox3 Name txtNombre
AutoSize X=80, Y=96
Location Width=90, Height=20
Text

3.7. Como la aplicación usa dos formularios donde se desea mantener datos, insertamos un módulo para
declarar variables. Del menú “Project” seleccionar “AddModule”, escribir como nombre
modEmpleado y clic en “Open”
3.8. Definir en el módulo las siguientes enumeraciones y variables públicas:

Module modEmpleado
Public dst As New DataSet()
Public pos As Integer
Public opera As Operacion

Public Enum Operacion


Nuevo = 1
Editar = 2
Eliminar = 3
End Enum
End Module

3.9. Regresar al primer formulario frmListaEmpleados y en ventana explorador de soluciones dar clic en
el boton “View Code”
3.10. En la parte superior del código (antes de la clase) definir el NameSpace del provedor de SQL:
Imports System.Data.SqlClient
3.11. Definir la variables a nivel de la clase

Ing. Ricardo Inquilla – 051-52-9639757 – [email protected]


ADO.NET: Trabajando en Forma desconectada

Private con As New SqlConnection("uid=sa;pwd=123456;server=INFO1;database=Northwind")


Dim dap As New SqlDataAdapter("Select EmployeeID, LastName, FirstName Name From
Employees", con)

3.12. Crear el procedimiento ListarEmpleados, que ocurran en el evento “Load” del formulario y
escribir el siguiente codigo

Private Sub ListarEmpleados(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
dap.Fill(dst, "Empleados")
dgdEmpleado.DataSource = dst.Tables(0)
End Sub

3.13. Crear un procedimiento de evento llamado MostrarDetalle que muestre el segundo formulario
al ocurrir el evento “Click” sobre los botones “btnNuevo”, “btnEditar”, “btnEliminar”

Private Sub MostrarDetalle(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btnNuevo.Click, btnEditar.Click, btnEliminar.Click
pos = dgdEmpleado.CurrentRowIndex
opera = sender.Tag
Dim objManteEmpleado As New frmManteEmpleado()
objManteEmpleado.ShowDialog()
End Sub

3.14. Crear un procedimiento de evento llamado EnviarCambios que envie todos los cambios
desde la tabla hacia la base de datos, este debe ocurrir en el evento “Clic” del botón
“btnEnviarCambios”

Private Sub EnviarCambios(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles btnEnviarCambios.Click
Try
Dim cbd As New SqlCommandBuilder(dap)
dap.Update(dst, "Empleados")
MessageBox.Show("Operacion Realizada", "Aviso", MessageBoxButtons.OK,
MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
dst.Tables(0).Clear()
dap.Fill(dst, "Empleados")
dgdEmpleado.DataSource = dst.Tables(0)
End Try
End Sub
3.15. Regresar al segundo formulario frmManteEmpleado y en la ventana explorador de soluciones
dar clic en el botón “View Code”
3.16. Crear un procedimiento llamado LimpiarTextos que permita borrar los cuadros de texto para
realizar un nuevo ingreso.

Private Sub LimpiarTextos()


txtCodigo.Clear()
txtApellido.Clear()
txtNombre.Clear()
End Sub

Ing. Ricardo Inquilla – 051-52-9639757 – [email protected]


ADO.NET: Trabajando en Forma desconectada

3.17. Crear otro procedimiento general llamado MostrarEmpleado que permita mostrar en los
cuadros de texto los datos de los empleados en el primer formulario, de acuerdo a la posición pos
Private Sub MostrarEmpleado()
With dst.Tables(0).Rows(pos)
txtCodigo.Text = .Item(0)
txtApellido.Text = .Item(1)
txtNombre.Text = .Item(2)
End With
End Sub
3.18. Crear el procedimiento de evento MostrarDatos, que ocurran en el evento “Load” del
formulario que permita representar un dialogo distinto dependiendo de la operación elegida (opera)

Private Sub MostrarDatos(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles MyBase.Load
If opera = modEmpleado.Operacion.Nuevo Then
Me.Text = "Adicionar un Empleado"
grpEmpleado.Enabled = True
LimpiarTextos()
ElseIf opera = modEmpleado.Operacion.Editar Then
Me.Text = "Actualizar un Empleado"
grpEmpleado.Enabled = True
MostrarEmpleado()
ElseIf opera = modEmpleado.Operacion.Eliminar Then
Me.Text = "Eliminar un Empleado"
grpEmpleado.Enabled = False
MostrarEmpleado()
End If
End Sub

3.19. Crear un evento llamado RealizarOpeacion que de acuerdo a la operación seleccionada en el


primer formulario realice una Adicion o una Actualizacion, Eliminación, esto en el evento
“btnAceptar”, tal como sigue:
Private Sub Aceptar(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnAceptar.Click
With dst.Tables(0)
Dim fila As DataRow
If opera = modEmpleado.Operacion.Nuevo Then
fila = .NewRow
fila(0) = .Rows(.Rows.Count - 1)(0) + 1
fila(1) = txtApellido.Text
fila(2) = txtNombre.Text
.Rows.Add(fila)
ElseIf opera = modEmpleado.Operacion.Editar Then
.BeginInit()
fila = .Rows(pos)
fila(1) = txtApellido.Text
fila(2) = txtNombre.Text
.EndInit()
ElseIf opera = modEmpleado.Operacion.Eliminar Then
fila = .Rows(pos)
fila.Delete()
End If
End With
End Sub

3.20. Configurar frmListaEmpleado como el formulario de Inicio


3.21. Grabar y ejecutar la aplicación con F5
TAREA: Realice las mismas operaciones sobre la tabla Employees

Ing. Ricardo Inquilla – 051-52-9639757 – [email protected]

También podría gustarte