CREACION DE CONSULTAS EN EL TABLE ADAPTER

En este ejemplo veremos cómo crear una consulta en un TableAdapter usando instrucciones SQL que me permitan cargar datos de una tabla. Podemos crear consultas que permitan mostrar los registros de una tabla y ordenarlos ya sea en forma ascendente o descendente, contar los registros, etc. En el pequeño ejemplo que realizaré a continuación utilizaré un método que será el de buscar o filtrar ciertos registros de acuerdo al criterio de búsqueda utilizando obviamente una instrucción SQL que estableceré en la consulta. En éste ejemplo también se verá como establecer un parámetro a la consulta el cual se utilizara para ingresar el criterio de búsqueda.

Tenemos nuestra base de datos creada en SQL Server y una Tabla llamada CLIENTE la cual está llena de registros. Agregamos esta Tabla en un DataSet , La cual tiene el nombre de ClientesDS.

  1. Una vez que agregamos la tabla CLIENTE al DataSet Este nos Generara un TableAdapter el cual ya aparece con una consulta establecida con los métodos Fill y GetData, ahora para crear otra consulta que me permitirá establecer un nuevo método, Click derecho en el TableAdapter y elige la opción Agregar Consulta.



  2. Un vez que has seleccionado Agregar Consulta, aparecerá un asistente de consultas como el que ves a continuación el cual pide el tipo de comando que se utilizará, selecciona Usar instrucción SQL y Siguiente.



  3. Tras elegir el tipo de comando te mostrara la sgte ventana que pedirá el tipo de consulta SQL que se desea utilizar, en este caso selecciona la primera opción ya que lo que se quiere es que devuelva filas.



  4. Una vez seleccionado el tipo de Consulta SQL aparecerá la sgte ventana en el cual pedirá que datos cargará la tabla ahora puedes agregarle la sgte instrucción WHERE Apellidos LIKE @Apellido + '%' a aquella que ya establece el asistente, o le das click a Generador de Consultas.



  5. En esta siguiente ventana mostrara como podemos establecer una consulta de manera mas sencilla eso no significa que la instrucción SQL que utilicemos cambie, lo que se hará es lo sgte: en el columna filtro de en este caso del campo Apellido escribimos la instrucción SQL LIKE @Apellido + '%'. Una vez establecida la instrucción SQL comprobamos la consulta en el botón Ejecutar consulta, después de eso aparecerá una ventanita que pedirá un valor inicial al parámetro @Apellido que hemos establecido, simplemente lo dejamos en NULL.



  6. Ya establecida la consulta regresamos a la ventana anterior le damos a siguiente, luego de eso aparecerá otra ventana que pedirá generar los métodos Fill y GetData, dejamos ambos métodos y le establecemos un nombre como se muestra en la imagen, click en siguiente.



  7. En esta ultima ventana del asistente mostrará en resumen lo que generará la consulta que se ha creado, también mostrará los error que se hayan detectado durante la creación de la consulta. Click en finalizar



  8. Aquí ya tenemos la consulta creada como se ve en la imagen, se aprecia la instrucción SQL que se le agregó a aquella que está establecida en el asistente. En esta consulta se le agregó la clausula WHERE que me permite realizar una condición, en este caso la condición es comparar con la instrucción LIKE los datos del campo Apellidos con el dato que se ingresará al parámetro Apellido que se estableció con el @, el dato que se le ingresa al parámetro se une con el carácter '%', al unir el dato del parámetro con ese carácter se asume que los caracteres que siguen después del dato a comparar pueden ser cualquiera.



  9. Tenemos el sgte diseño el cual se le ha agregado los sgtes controles:
    • Lablel le establecemos en la propiedad Text “Criterio de Búsqueda”
    • TextBox llamado txtBuscar
    • DataGridView llamado VerClientes


    • El codigo que se utlizara a continuacion simplemente lo que hara es enlazar el DataGridView con el TableAdapter en este caso con el metodo GetData que se ya estaba creado en el TableAdapter simplemente para que muestre los datos que tengo en la tabla CLIENTE. Este lo establecemos en el evento Load del formulario.

      'Variable TablaClientes instanciada como TableAdapter de la Tabla CLIENTE
      Dim TablaClientes As New ClientesDSTableAdapters.CLIENTETableAdapter 
      'en esta linea se enlaza al DataGridView con el metodo GetData del TableAdapter 
      'para que simplemente muestre los datos de la tabla
      Me.VerClientes.DataSource = TablaClientes.GetData
      'Esta linea establece un Ancho para la primera columna
      Me.VerClientes.Columns(0).Width = 30
      'Esta linea establece un nombre a la cabecera de la primera columna
      Me.VerClientes.Columns(0).HeaderText = "ID"
      'Esta linea establece un anchor a la segunda coloumna
      Me.VerClientes.Columns(1).Width = 120
      
    • En el siguiente codigo al igual que el primero enlaza el DataGridView con el TableAdapter en este caso con el metodo que hemos hecho al crear la nueva consulta. Ese codigo lo establecemos en el eveto TextChanged del control TextBox con la finalida de que busque los registros mientras mientras se escribe lo que se esta buscando.

      'la Variable Cliente instanciada como TableAdapter de la Tabla CLIENTE
      Dim Clientes As New ClientesDSTableAdapters.CLIENTETableAdapter
      'en esta linea se enlaza al DataGridView con el TableAdapter de la tabla 
      'CLIENTE aqui se utiliza el metodo GetDataByApellido que es el nombre que se 
      'le establecio al metodo GetData al crear la nueva consulta, lo que hace
      'este metodo es delover una tabla que se ha llenado en este caso de acuerdo 
      'al valor que se le agrega al paremetro del metodo GetDataByApellido 
      Me.VerClientes.DataSource = Clientes.GetDataByApellido(Me.txtBuscar.Text) 
      
  10. Tal y como vemos en esta imagen que se muestran los registros en donde los apellidos comienzan con la letra “n” y si seguimos escribiendo mostrará los registros que comienzan con esas letras, de esta forma se ha establecido una búsqueda de manera sencilla.



    Bueno eso fue una pequeña demostracion de como crear consultas y establecerle un parametro a esa consulta... espero que te haya servido de algo, y como habras visto es muy sencillo hacer esto, intentalo... puedes adaptarlo a tus necesidades.

    << CyberChacky >>