de bd a textbox

6
Visual .NET: Operaciones con bases de datos (1) Por Francisco | 31 de Enero de 2007 | 4 comentarios 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 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 via 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

Upload: ortzi

Post on 11-Jun-2015

444 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: de bd a textbox

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

Por Francisco | 31 de Enero de 2007 | 4 comentarios

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

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 via 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.

Page 2: de bd a textbox

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

Page 3: de bd a textbox

30. Conexion.Close()

31. End Try

32. End Sub

33. End Class

Descarga el código fuente

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:

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

Page 4: de bd a textbox

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

Descarga el código fuente

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

Descarga el código fuente

Enlaces interesantes

Descarga programas de Visual Basic .NET