viernes, 19 de diciembre de 2014

Poblar DataGridView utilizando una consulta SQL con condiciones

Primero, esto nace de mi "sed auto-didacta" de querer aprender a programar en VisualBasic. Por lo anterior, quizás no sepa explicarme (y también el título no suene muy coherente), pero mi intención es dejar una ayuda más en la "red" sobre algo del cual no hay muchos recursos rondando. Segundo, mi duda nació porque necesitaba llenar un DataGridView con datos de una consulta SQL con condiciones (WHERE) y con el asistente en el editor de DataTables no lo podía lograr.

Lo que necesitaba era que 'poblar' el DataGridView con los datos de esta consulta, el problema: es que la condición que tenía la consulta SQL venía de otro formulario (form) y el asistente del editor de DataTables no lo tomaba, lo cual dejaba en blanco el DGV. Después de hondear en la web, pude encontrar la solución a mis problemas y aquí, como dije anteriormente, quiero dejar otra constancia del código para lograrlo.

'Declarar la cadena de conexion a la base de datos
Dim cadena_conexion As String = ""

'Estan declarados la variable comando, como el comando ODBC a utilizar y la variable conexion como la conexion ODBC
Dim comando As Odbc.OdbcCommand
Dim conexion As Odbc.OdbcConnection



'Se define que la variable conexion use a cadena_conexion para conectar con la base de datos ODBC y se abre la conexion
conexion = New Odbc.OdbcConnection(cadena_conexion)
conexion.Open()


'Define el comando ODBC a utilizar, en mi caso necesitaba que obtuviera la variable desde la form1, y se define la conexion a utilizar por el comando
comando = New Odbc.OdbcCommand("Select * from cosas where lugardelascosas = '" & form1.label1.Text & "'", conexion)


'Se declara a dtTable como una nueva Tabla de Datos
Dim dtTable As DataTable


'Se define como se quiere el comando ODBC sea interpretado y se redefine que conexion utiliza
comando.CommandType = CommandType.Text
comando.Connection = conexion


'Declara a sqlAdp como un Adaptador de Datos ODBC para el comando SQL
Dim sqlAdp As New Odbc.OdbcDataAdapter
sqlAdp.SelectCommand = comando


'Ahora aquí viene todo, se declara que dtTable sea una nueva Tabla de Datos y sqlAdp popule a esa tabla de datos
dtTable = New DataTable
sqlAdp.Fill(dtTable)


'Para finalizar, adjuntamos los datos obtenidos, y llenados, de la tabla al DGV
DataGridView1.DataSource = dtTable


Con el código anterior pude obtener lo que quería y , de esta manera, poder crear algun formulario de busqueda utilizando los datos de otros formularios o de el mismo con consultas SQL conforme a mis necesidades.

Espero que a alguien le sirva, tanto como a mí. Saludos y Schop!

No hay comentarios:

Publicar un comentario