none
buscar registros en VB 2010 RRS feed

  • Pregunta

  • Que tal estoy iniciandome en la programacion en visual basic 2010 y mi problema es el siguiente en mi aplicacion estoy generando una busqueda por un campo para empezar aunque mi idea es realizar la busqueda por varios campos, pero de momento es solo uno

    Y mi problema es que si tecleo la o las palabras completas del registro que quiero buscar si me lo hace pero lo que quiero es que busque todos los registros que coincidan con lo que le tecleo en el texbox de busqueda.

    Utilice el generador de consultas de esta manera:

    SELECT        IdContrat, IdActaConstit, ContratNombre, ContratNombre2, ContratRepLegal1, ContratRFC, ContratTel, ContratMail, ContrAC_Copia, ContratFechCaptura
    FROM            tblContratistas
    WHERE        (ContratNombre LIKE N'%' + @ContratNomb + N'%')

    si realizo la busqueda aqui si me busca cualquier registro que coincida con lo que le teclle

    pero en mi aplicacion no funciona igual el codigo de mi apliacion es el siguiente:

     

    Me

    .TblContratistasTableAdapter.FillByContratBuscarFrm2(DB_CurricContratFrmBuscarDS.tblContratistas, ContratNombreTextBox.Text.Trim)

    De antemano gracias por su ayuda 

     

    viernes, 5 de agosto de 2011 0:37

Respuestas

  • Como bien dices, la instrucción TSQL así escrita es sintácticamente correcta y hace lo que necesitas que haga, pero por algún motivo en el código de la aplicación no se está enviando eso al servidor. Por tanto, no es un error de SQL Server sino de programación, por lo que te recomiendo que la pregunta la traslades al foro de VB.NET para que te ayuden mejor que lo que podamos hacer aquí.

    Por cierto, con esa línea poco te van a poder decir. Necesitarán más bien el código de la función "FillByContratBuscarFrm2"

    viernes, 5 de agosto de 2011 6:19
  • "debianhck" escribió:

    > si realizo la busqueda aqui si me busca cualquier registro
    > que coincida con lo que le teclle
    >
    > pero en mi aplicacion no funciona igual el codigo de mi
    > apliacion es el siguiente:
    >
    > Me.TblContratistasTableAdapter.FillByContratBuscarFrm2( _
    >   DB_CurricContratFrmBuscarDS.tblContratistas, ContratNombreTextBox.Text.Trim)

    Hola:

    ¿Y en qué te basas para decir que no funciona? ¿Obtienes algún error? ¿No se rellena de datos el objeto DataTable llamado 'DB_CurricContratFrmBuscarDS.tblContratistas'?

    La consulta T-SQL es correcta, y me imagino que el origen de datos habrá configurado adecuadamente el parámetro @ContratNomb, por lo que únicamente te tienes que limitar a escribir un valor en el control TextBox llamado 'ContratNombreTextBox'.

    Inserta un control DataGridView en el formulario, y en el evento Click de cualquier control Button ejecuta lo siguiente:

     Dim dt As New DB_CurricContratFrmBuscarDS.tblContratistas
    
     Me.TblContratistasTableAdapter.FillByContratBuscarFrm2( _
       dt, ContratNombreTextBox.Text.Trim)
    
     Me.DataGridView1.DataSource = dt
    

    Escribe en el control TextBox algún valor que exista en la tabla, y comprueba si el control DataGridView se rellena de datos.

    Si no se rellena de datos, lo único que por ahora te puedo decir es que no se debe a la consulta T-SQL de selección, porque insisto que su sintaxis es correcta.

    Un saludo

     

     


    Enrique Martínez
      [MS MVP - VB]

    viernes, 5 de agosto de 2011 15:28
    Moderador
  • "debianhck" escribió:

    > creo q no me supe explicar lo que pasa es que si se realiza
    > la busqueda si se llena el datagridview lo que pasa es que
    > por ejemplo si le tecleo el texto completo que quiero buscar
    > si reliza la busqueda pero si solo le tecleo una parte ya
    > no lo hace por ejemplo si tecleo el nombre completo de la
    > empresa que se llama "pro hidro" si realiza la busqueda pero
    > si solo le pongo pro ó hidro ya no realiza la busqueda

    Lo siento, pero no puedo reproducir lo que me comentas, y mira que creo haber entendido bien lo que deseas ejecutar .

    Si la consulta T-SQL es la que has indicado en tu primer mensaje, no veo problema alguno para que en el control TextBox llamado 'ContratNombreTextBox' escribas la palabra 'pro' o 'hidro', y te devuelva todos los registros de la tabla 'tblContratistas' cuyo campo 'ContratNombre' incluya las palabras 'pro' o 'hidro', entre ellas, la empresa llamada 'pro hidro'.

    Por supuesto, doy por sentado que el método 'FillByContratBuscarFrm2' incluido en el origen de datos de tu proyecto, está bien configurado.


    Enrique Martínez
      [MS MVP - VB]

    domingo, 7 de agosto de 2011 4:51
    Moderador

Todas las respuestas

  • Como bien dices, la instrucción TSQL así escrita es sintácticamente correcta y hace lo que necesitas que haga, pero por algún motivo en el código de la aplicación no se está enviando eso al servidor. Por tanto, no es un error de SQL Server sino de programación, por lo que te recomiendo que la pregunta la traslades al foro de VB.NET para que te ayuden mejor que lo que podamos hacer aquí.

    Por cierto, con esa línea poco te van a poder decir. Necesitarán más bien el código de la función "FillByContratBuscarFrm2"

    viernes, 5 de agosto de 2011 6:19
  • "debianhck" escribió:

    > si realizo la busqueda aqui si me busca cualquier registro
    > que coincida con lo que le teclle
    >
    > pero en mi aplicacion no funciona igual el codigo de mi
    > apliacion es el siguiente:
    >
    > Me.TblContratistasTableAdapter.FillByContratBuscarFrm2( _
    >   DB_CurricContratFrmBuscarDS.tblContratistas, ContratNombreTextBox.Text.Trim)

    Hola:

    ¿Y en qué te basas para decir que no funciona? ¿Obtienes algún error? ¿No se rellena de datos el objeto DataTable llamado 'DB_CurricContratFrmBuscarDS.tblContratistas'?

    La consulta T-SQL es correcta, y me imagino que el origen de datos habrá configurado adecuadamente el parámetro @ContratNomb, por lo que únicamente te tienes que limitar a escribir un valor en el control TextBox llamado 'ContratNombreTextBox'.

    Inserta un control DataGridView en el formulario, y en el evento Click de cualquier control Button ejecuta lo siguiente:

     Dim dt As New DB_CurricContratFrmBuscarDS.tblContratistas
    
     Me.TblContratistasTableAdapter.FillByContratBuscarFrm2( _
       dt, ContratNombreTextBox.Text.Trim)
    
     Me.DataGridView1.DataSource = dt
    

    Escribe en el control TextBox algún valor que exista en la tabla, y comprueba si el control DataGridView se rellena de datos.

    Si no se rellena de datos, lo único que por ahora te puedo decir es que no se debe a la consulta T-SQL de selección, porque insisto que su sintaxis es correcta.

    Un saludo

     

     


    Enrique Martínez
      [MS MVP - VB]

    viernes, 5 de agosto de 2011 15:28
    Moderador
  • ok carlos gracias por responder voy a hacer lo q m indicas y trasladare la pregunta al foro vbnet
    domingo, 7 de agosto de 2011 0:25
  • Hola Enrique antes que nada gracias por tomarte tiempo para ayudarme, mira creo q no me supe explicar lo que pasa es que si se realiza la busqueda si se llena el datagridview lo que pasa es que por ejemplo si le tecleo el texto completo que quiero buscar si reliza la busqueda pero si solo le tecleo una parte ya no lo hace por ejemplo si tecleo el nombre completo de la empresa que se llama "pro hidro" si realiza la busqueda pero si solo le pongo pro ó hidro ya no realiza la busqueda

    Gracias de nuevo, Saludos

     

    domingo, 7 de agosto de 2011 2:40
  • "debianhck" escribió:

    > creo q no me supe explicar lo que pasa es que si se realiza
    > la busqueda si se llena el datagridview lo que pasa es que
    > por ejemplo si le tecleo el texto completo que quiero buscar
    > si reliza la busqueda pero si solo le tecleo una parte ya
    > no lo hace por ejemplo si tecleo el nombre completo de la
    > empresa que se llama "pro hidro" si realiza la busqueda pero
    > si solo le pongo pro ó hidro ya no realiza la busqueda

    Lo siento, pero no puedo reproducir lo que me comentas, y mira que creo haber entendido bien lo que deseas ejecutar .

    Si la consulta T-SQL es la que has indicado en tu primer mensaje, no veo problema alguno para que en el control TextBox llamado 'ContratNombreTextBox' escribas la palabra 'pro' o 'hidro', y te devuelva todos los registros de la tabla 'tblContratistas' cuyo campo 'ContratNombre' incluya las palabras 'pro' o 'hidro', entre ellas, la empresa llamada 'pro hidro'.

    Por supuesto, doy por sentado que el método 'FillByContratBuscarFrm2' incluido en el origen de datos de tu proyecto, está bien configurado.


    Enrique Martínez
      [MS MVP - VB]

    domingo, 7 de agosto de 2011 4:51
    Moderador
  • Ok voy a rechecar la configuracion del metodo FillByContratBuscarFrm2 creo q tienes razon por ahi puede estar el problema

     

    gracias

    domingo, 7 de agosto de 2011 16:27