Visual .NET: Operaciones con bases de datos (1)

Una vez realizada la conexión con la base de datos la utilizaremos para comunicarnos y trabajar con esa base de datos. Podemos realizar cuatro tipos de operaciones diferentes: Consultar, Modificar, Insertar y Eliminar datos. Las consultas a una base de datos son básicamente todas iguales solo varia el volumen de la respuesta. Ante una consulta así:

  1. Dim Sql as String
  2. Sql="Select Nombre From Clientes"

Es de esperar que el volumen de la respuesta sea bastante grande, es decir que la base de datos devuelva muchos registros. En cambio ante una consulta así­:

  1. Dim Sql as Strip
  2. Sql="Select Nombre From Clientes Where IdCliente=1"

Solo obtendremos un registro como respuesta, el nombre del cliente 1. Por lo tanto la forma de tratar ambas consultas la haremos de forma diferente para sacarle algo más de partido a las opciones que nos da Visual Basic.

Veremos en primer lugar el segundo escenario, donde la base de datos nos devolverá un solo registro. Dado que este tipo de consulta se puede repetir mucho dentro de un proyecto podrÃímos crear una Clase que nos sirviera para siempre y en cualquier tipo de proyecto. Se podrí­a incluir dentro de una dll o sencillamente copiar y pegar en otro proyecto.

Para desarrollar esta pequeña clase emplearemos diversos objetos, que pasamos a explicar:

  1. OleDbCommand: La conexión que usamos en este ejemplo es una conexión vi­a OleDb, por eso usamos este objeto. Si fuera una conexión ODBC utilizarí­amos OdbcCommand y si fuera una conexión Sql usarí­amos SqlCommand. El objeto OleDbCommand es el comando que nos permitirá pasar a la base de datos una sentencia SQL.
  2. OleDbCommand tiene una serie de métodos que ejecutan comandos en la base de datos, el que en este momento nos interesa es ExecuteScalar ya que es especialmente adecuado para una consulta que devuelve una única línea.

Nuestra pequeña clase quedará de esta manera:

  1. Public Class CBuscarValor 'es el nombre de la clase
  2. Public Shared Sub BuscarValor(ByVal Sql As String, ByVal Variable As TextBox)
  3. 'es el procedimiento compartido que utilizaremos para encontrar el valor que buscamos.
  4. 'a este procedimiento le pasamos dos parámetros. La correspondiente sentencia SQL y un
  5. 'objeto textbox donde recogeremos la respuesta del procedimiento. De la misma manera podríamos
  6. 'pasarle una variable si eso nos interesa mas.
  7. 'nos aseguramos que el textbox esta vacio
  8. Variable.Text = ""
  9. 'abrimos el gestor de errores.
  10. Try
  11. 'abrimos la conexión
  12. Conexion.Open()
  13. 'creamos el comando al que pasamos la sentencia SQL y le indicamos que conexión debe utilizar
  14. 'conexión que como vimos en el artículo Visual Basic: Conexión con bases de datos (2) hemos creado en un modulo aparte.
  15. 'Al final de la explicación mostraremos otra vez el código para que lo tengais más cómodo.
  16. Dim Olecmd As OleDbCommand = New OleDbCommand(Sql, Conexion)
  17. 'ejecutamos el comando en la base de datos y comprobamos que nos devuelve
  18. ’si devuelve un valor nulo no devolvemos nada
  19. If IsDBNull(Olecmd.ExecuteScalar()) Then
  20. Variable.Text = ""
  21. Else
  22. 'si devuelve un valor se lo pasamos al textbox
  23. Variable.Text = Olecmd.ExecuteScalar()
  24. End If
  25. Catch err As Exception
  26. 'en caso de error mostramos que ha sucedido
  27. MsgBox(err.ToString, MsgBoxStyle.Critical, "Información del Sistema")
  28. Finally
  29. 'y pase lo que pase cerramos la conexión
  30. Conexion.Close()
  31. End Try
  32. End Sub
  33. End Class

Veamos como funcionaria todo esto en un proyecto real. Abrimos un nuevo proyecto de Windows, con un solo formulario cuyo diseño será el siguiente:

Ventana de pruebas

Haremos doble clic en el botón y escribiremos el siguiente código:

  1. Imports System.Data.OleDb 'importamos el espacio con nombres
  2. Private Sub cmdAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAceptar.Click
  3. 'creo una cadena de conexión con la constante strProv que está en el module1 a la que concateno
  4. 'con & la dirección completa de la BD que voy a utilizar
  5. Conexion.ConnectionString = strProv % "Data Source=C:\Pruebas.mdb"
  6. 'creo la sentencia SQL del valor que quiere recuperar.
  7. 'quiere el nombre del cliente numero 15 de mi tabla de clientes.
  8. Dim Sql As String
  9. Sql = "Select Cliente From Clientes Where IdCliente=" & 15
  10. 'ahora utilizamos nuestra clase. No es preciso crear una nueva instancia de clase
  11. 'del tipo: Dim Valor as New CBuscarValor, porque el procedimiento que contiene es
  12. 'publico y Shared por lo tanto podemos acceder a el directamente.
  13. CBuscarValor.BuscarValor(Sql, txtPrueba)
  14. 'Al pulsar el botón del formulario nos mostrara el nombre del cliente solicitado.
  15. End Sub
  16. End Class
Ventana de pruebas

El código del modulo donde esta la conexión es:

  1. Imports System.Data.OleDb 'importamos el espacio con nombres
  2. Module Module1
  3. Public Conexion As New System.Data.OleDb.OleDbConnection
  4. Public Const strProv = "Provider=Microsoft.Jet.OLEDB.4.0"
  5. End Module

Enlaces interesantes

  • Descarga programas de Visual Basic .NET
  • ¿Qué te ha parecido el artículo?

  • Compartir

    Comparte tu opinión ahora


Relacionados con Visual .NET: Operaciones con bases de datos (1)

Temas sobre Visual .NET: Operaciones con bases de datos (1)

Opiniones sobre Visual .NET: Operaciones con bases de datos (1)

Hace 7 años

Por urgente necesidad he leído una serie de tutoriales de acceso a bases de datos mediante visual.net pero lejos este es comprensible, por fín entiendo como funciona y puedo crear mis propios accesos... Gracias Francisco.


Hace 6 años y 6 meses

Hola quien me puede ayudar
Estoy haciendo una mini base de datos en sql y quiero capturar los registros desde Visual.Net, ya hice la coneccion en visual con un Datagrid y si em muestra los elementos que le he emtido, pero lo que no se es como desde los TextBox que tengo desde Visual.Net como al tiempo de dar clic al boton de guardar me los mande a la base de Datos de SQL, bueno serian las funciones, Agregar, Eliminar, Consultar...
ojala y alguien me pueda ayudar porke ya sufri mucho y nomas no puedo mi correo es erben83@hotmail.com

Leer más

Hace 6 años

necesito conectarme a un servidor sql desde .net pudes ayudarme
solo utizo stor prosidius para la conecion y para cualquer consulta


Hace 6 años

hola buenas noches, quisiera saber como es que puedo realizar una conexion desde visual basic para poder ver los registros o datos para poder leerlos desde visual basic 2008 exprees.


Hace 5 años

Sus consejos son prácticos y buenos, ojalá supieran como ligar una hoja de cálculo de excel con un programa


Hace 4 años y 8 meses

hola estoy programando una base de datos ya monte todo y programe el primer formulario correspondiente a la primera tabla pero no se como crear un segundo formulario para la siguiente tabla. lo estoy haciendo en visual basic 2008 ese es el complique en el 2005 ya me lo se pero es que me toco formatear y monte fue 2008

gracias por la ayuda


Hace 4 años

hola qisiera que me ayuden a diseñar una base de datos en visual.net para un invernadero manejano el control de tnperatura.


Opina sobre Visual .NET: Operaciones con bases de datos (1)

Nombre:

Tu email:

Página web (si tienes):

Opinar:

Escoge el recuadro negro: para evitar spam