Sunteți pe pagina 1din 6

Mantenimiento de Categoras Usando la Base de datos Northwind Fecha: 31/May/2005 (24 de Mayo de 2005) Autor: Ing.

Fernando Luque Snchez - Trujillo - Per fls2307@hotmail.com fernandoluque2307@yahoo.com fluque@infonegocio.net.pe

Sres. Desarrolladores, les envo en esta oportunidad el clsico mantenimiento de una tabla de una base de datos, es algo sencillo pero a la vez sumamente importante. El ejemplo tiene incluido desde el IDE los objetos SQLConnection, un SQLDataAdapter y se ha generado un DataSet tipificado. Se asume que el lector conoce todos estos trminos. Tambin se muestra como se utiliza el control ToolTip, recuerden que en los exmenes del Desarrollador Cinco Estrellas asi como en la Certificacin MCSD .Net viene preguntas acerca del Control ToolTip. Basta con uno solo para todos los controles que se les pueda especificar un mensaje. Notas importantes: El ejemplo incluye dos formas de manipular los registros de Categoras, la primera es nicamente con el uso de un grid y un botn que actualice la tabla de la base de datos con el uso del SQLDataAdapter respectivo. La segunda forma es incluyendo los clsicos botones de navegacin entre registros y los botones Insertar, Modificar, Actualizar y Eliminar. El ejemplo muestra en el mismo Form las dos opciones. Les envo adems un archivo de Word en Versin Imprimible.

A continuacin sigue cdigo en Visual Basic: 'Importar el NameSapce para los datos con SQL Server 2000 Imports System.Data.SqlClient Public Class Categorias Inherits System.Windows.Forms.Form 'CREAR EL Adaptador, el DataSet y el Entero para la Posicin Private daCat As SqlDataAdapter Private dsCatCod As DataSet Private iPosicion As Integer 'Este DataTable es para el Mantenumiento con todos los botones.

Private CategoriasCod As DataTable #Region " Cdigo generado por el Diseador de Windows Forms " *** CODIGO ELIMINADO #End Region 'CUANDO CARGA EL FORMULARIO --- LOAD Private Sub CargarForm(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'LLENAR EL DATATABLE CON LOS DATOS DEL DATASET daCategorias.Fill(dsCat, "Categorias") 'ENLAZAR EL GRID CON EL DATATABLE CREADO grdCategorias.DataSource = dsCat.Tables("Categorias") grdCategorias.CaptionText = "Categorias Registradas" ' **********************************************************' 'Esta seccion el para el Mantenimiento por cdigo 'CREAR LA CONEXION Dim cn1 As New SqlConnection() 'ESTABLECER LA CADENA DE CONEXION cn1.ConnectionString = "data source=HOME;" & _ "initial catalog=Northwind;" & _ "integrated security=SSPI;" & _ "persist security info=False;" & _ "user id=sa;workstation id=HOME;packet size=4096" 'CREAR EL ADAPTADOR daCat = New SqlDataAdapter("Select CategoryId,CategoryName,Description from Categories", cn1) 'CREAR EL COMMANDBUILDER 'ESTE OBJETO PERMITE CREAR LOS COMANDOS DEL ADAPTADOR Dim cbCat As New SqlCommandBuilder(daCat) 'Crear una nueva instancia del DataSet Me.dsCatCod = New DataSet() 'Abrir la Conexion cn1.Open() 'Llenar el DataSet Me.daCat.Fill(dsCatCod, "CategoriasCod")

'Cerrar la conexion cn1.Close() 'Indicador de registros a 0 Me.iPosicion = 0 'Cargar los datos del registro a las cajas de texto Me.CargarDatos() 'DataSource del Grid por Cdigo grdCatCod.DataSource = Me.dsCatCod.Tables("CategoriasCod") grdCatCod.CaptionText = "Categorias - Cdigo" grdCatCod.ReadOnly = True End Sub 'MUESTRA LOS DATOS DEL REGISTRO ACTIVO EN LAS CAJAS DE TEXTO Private Sub CargarDatos() 'DEFINIR UN DATAROW Dim drFila As DataRow 'ASIGNAR LOS DATOS DEL PRIMER REGISTRO AL DATAROW drFila = dsCatCod.Tables("CategoriasCod").Rows(Me.iPosicion) 'LLENAR LAS CAJAS DE TEXTO CON LOS DATOS DEL DATAROW Me.txtIdCat.Text = drFila("CategoryID") Me.txtNombreCat.Text = drFila("CategoryName") Me.txtDescCat.Text = drFila("Description") 'ACTUALIZAR LA ETIQUETA "Registro..... de ......" Me.lblPosicion.Text = "Registro " & CType(Me.iPosicion + 1, String) & _ " de " & Me.dsCatCod.Tables("categoriasCod").Rows.Count End Sub 'ACTUALIZACION DESDE EL IDE Private Sub ActualizaGrid(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdActualizar.Click daCategorias.Update(dsCat, "Categorias") End Sub Private Sub cmdPrimero_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPrimero.Click 'PRIMER REGISTRO DE LA TABLA

Me.iPosicion = 0 CargarDatos() End Sub Private Sub cmdUltimo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUltimo.Click 'ULTIMO REGISTRO DE LA TABLA Me.iPosicion = Me.dsCatCod.Tables("CategoriasCod").Rows.Count - 1 CargarDatos() End Sub Private Sub cmdAnterior_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdAnterior.Click 'REGISTRO ANTERIOR If Me.iPosicion = 0 Then MessageBox.Show("Primer registro...", "Atencin") Else Me.iPosicion -= 1 CargarDatos() End If End Sub Private Sub cmdSiguiente_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdSiguiente.Click 'SIGUIENTE REGISTRO If Me.iPosicion = Me.dsCatCod.Tables("CategoriasCod").Rows.Count - 1 Then MessageBox.Show("ltimo registro...", "Atencin") Else Me.iPosicion += 1 CargarDatos() End If

End Sub Private Sub Insertar(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles cmdInsertar.Click 'INSERTAR REGISTROS AL DATATABLE 'DEFINIR EL DATAROW Dim FilaNueva As DataRow FilaNueva = Me.dsCatCod.Tables("CategoriasCod").NewRow() 'ASIGNAR LOS VALORES CON LOS DE LAS CAJAS DE TEXTO FilaNueva("CategoryID") = CType(Me.txtIdCat.Text, Integer) FilaNueva("CategoryName") = Me.txtNombreCat.Text FilaNueva("Description") = Me.txtDescCat.Text 'Agregar el Row Me.dsCatCod.Tables("CategoriasCod").Rows.Add(FilaNueva) 'Deshabilitar Botones Me.cmdInsertar.Enabled = False Me.cmdActualCod.Enabled = True Me.cmdModificar.Enabled = True Me.cmdEliminar.Enabled = True Me.PanelMover.Enabled = True 'Activar Panel Me.cmdLimpiar.Enabled = True DesactivarCajas() Me.cmdActualCod.Text = "Actualizar" Me.iPosicion = Me.dsCatCod.Tables("CategoriasCod").Rows.Count - 1 Me.lblPosicion.Text = "Registro " & CType(Me.iPosicion + 1, String) & _ " de " & Me.dsCatCod.Tables("categoriasCod").Rows.Count End Sub

El cdigo completo est en el archivo adjunto. Suerte a todos, espero les sirva de ayuda, no olviden dar su opinin en mi Panoramabox, gracias.

S-ar putea să vă placă și