viernes, 10 de julio de 2009

Uso de las Sentencias SQL Select, Insert, Update y Delete en Visual Basic .NET

A petición de unos jóvenes que programan en Visual Basic .NET he publicado el siguiente post donde explico detalladamente estas operaciones básicas hacia una Base de Datos.
Se supone que ya se tiene creado un proyecto en donde vamos agregar los elementos que se describen a continuación.
1. Se agrega un archivo de Clase de Visual Basis .NET lo guardamos con cualquier nombre (en mi caso lo nombre AccesoBd.vb)
2. Dentro de esa clase de VB.net copiamos los siguientes Namespaces (Librerias de Clases) y lo pegamos en la parte de arriba de nuestro archivo de clase.
Imports System
Imports System.Diagnostics
Imports System.Data
Imports System.Data.Odbc
3. Dentro de nuestro cuerpo de la clase copiamos el siguiente código, que son los métodos que vamos a utilizar desde cualquier formulario que hagamos.
Dim conexion As New OdbcConnection("dsn=bd;")
Public Sub conectar()
Try
conexion.Open()
Catch ex As Exception
Trace.WriteLine(ex.ToString())
End Try
End Sub
Public Sub desconectar()
Try
conexion.Close()
Catch ex As Exception
Trace.WriteLine(ex.ToString())
End Try
End Sub
Public Function consultaDS(ByVal sqlCad As String) As DataSet
Dim ds As New DataSet()
Try
Dim adaptador As New OdbcDataAdapter(sqlCad, conexion)
adaptador.Fill(ds)
Catch ex As Exception
Trace.WriteLine(ex.ToString())
End Try
Return ds
End Function
Public Function EjecutarSql(ByVal cadenaSQL As String) As OdbcCommand
Dim orden As New OdbcCommand(cadenaSQL, conexion)
Return orden
End Function
4. Se supone tambien que el lector ya sabe realizar conexiones de ODBC hacia Base de Datos por DSN de Sistema.
5. En la clase que se mostró en la parte de arriba se creó un objeto que se llama "conexion" de tipo "OdbcConnection" para conectarnos a la Base de Datos (Access, SQL Server, VisualFoxPro) mediante DSN de Sistema.
6. SI observaron bien existen 4 métodos: conectar(), desconectar(), consultaDS(ByVal sqlCad As String) As DataSet y EjecutarSql(ByVal cadenaSQL As String) As OdbcCommand.
7. Los primeros dos métodos nos conectan y desconectan de la Base de Datos respectivamente, el método consultaDS() se utiliza para consultar datos mediante una instrucción SQL y EjecutarSql() permite ejecutar las instrucciones INSERT, UPDATE y DELETE.
8. Bueno ya construimos la Clase que nos permitirá manipular cualquier dato de una Base de Datos. Ahora imaginemos que tenemos un formulario con 3 textBox (Nombre, Apellidos y Edad), la tabla en la Base de Datos se llama "Personas", nuestros codigos irían de la siguiente forma:
En la parte de arriba Pegamos la declaraciones de los siguientes Namespaces:
Imports System
Imports System.Diagnostics
Imports System.Data
Imports System.Data.Odbc
Dentro de la clase del formulario pegamos lo siguiente:
Dim BaseDatos As New AccesoBD()
Dim ordenSql As New OdbcCommand()
Dim sql, nombreBusqueda As String
9. En el botón "Insertar" pegamos lo siguiente:
BaseDatos.conectar()
sql = "INSERT INTO Personas VALUES ('" + textNombre.Text + "','" + textApellidos.Text + "','" + textEdad.Text + "')"
ordenSql = BaseDatos.EjecutarSql(sql)
ordenSql.ExecuteNonQuery()
BaseDatos.desconectar()
MsgBox("Registro Guardado con Éxito", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
10. En el botón "Modificar" pegamos lo siguiente:
BaseDatos.conectar()
sql = "UPDATE Personas SET Apellidos= '" + textApellidos.Text + "', Edad= '" + textEdad.Text + "' WHERE Nombre = " + textNombre.Text + ""
ordenSql = BaseDatos.EjecutarSql(sql)
ordenSql.ExecuteNonQuery()
BaseDatos.desconectar()
MsgBox("Registro Modificado con Éxito", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
11. En el botón "Eliminar" pegamos lo siguiente:
BaseDatos.conectar()
sql = "DELETE FROM Personas WHERE Nombre= " + textNombre.Text.Trim() + "" ordenSql = BaseDatos.EjecutarSql(sql)
ordenSql.ExecuteNonQuery()
BaseDatos.desconectar()
MsgBox("Registro Eliminado con Éxito", MsgBoxStyle.Information + MsgBoxStyle.OkOnly)
12.Y Con eso tenemos Insertamos, Modificamos y Eliminamso registros, ahora para consultar los datos pegamos lo siguiente en el botón "Ver Datos":
Try
nombreBusqueda= InputBox("Teclee Nombre de la Persona")
BaseDatos.conectar()
sql = "SELECT * FROM Personas WHERE nombre= " + nombreBusqueda + ""
Dim datos As New DataSet()
datos = BaseDatos.consultaDS(sql)
textNoombre.Text = datos.Tables(0).Rows(0).ItemArray.GetValue(0).ToString()
textApellidos.Text = datos.Tables(0).Rows(0).ItemArray.GetValue(1).ToString()
textEdad.Text = datos.Tables(0).Rows(0).ItemArray.GetValue(2).ToString()
BaseDatos.desconectar()
Catch ex As Exception
MsgBox("El Nombre no se encuentra", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly)
End Try
Y eso es todo, este es un ejemplo sencillo, espero y sea entendible, no coloque como quedaría el Formulario pero ustedes con un poco de imaginación ya se imaginan como quedaría, inténtenlo y publiquen aquí mismo sus dudas y comentarios.