none
Como realizar una consulta en SqlServer 2008 RRS feed

  • Pregunta

  • Hola quisiera saber como puedo realizar una consulta en una base de datos SqlServer 2008 pero que al agregar a un textbox el dato a consultar al darle al boton buscar este muestre toda la informacion del dato consultado en un datagridview.

    tengo este codigo que he echo yo inventando, es que estoy axidado en esto.

            Using Connexion As New SqlCeConnection(connstring)
                Connexion.Open()
                Dim Consulta = "SELECT * FROM Usuarios WHERE Nombre'" + Nombre2.Text + "'"
                Dim cmd = New SqlCeDataAdapter(Consulta, Connexion)
                Dim DataSet = New System.Data.DataSet()
                cmd.Fill(DataSet, "Texto")
                DataGridView1.DataSource = DataSet
                DataGridView1.DataMember = "Texto"
            End Using

    domingo, 20 de octubre de 2013 21:50

Respuestas

  • hola

    pero SqlCeConnection se usa para base de datos de Sql Compact, o sea .sdf

    esto no tiene que ver con Sql Server, o  sea una db .mdf

    Using Connexion As New SqlConnection(connstring)
    	Connexion.Open()
    	
    	Dim Consulta = "SELECT * FROM Usuarios WHERE Nombre LIKE '%' + @nombre + '%'"
    	Dim cmd As New SqlCommand(Consulta, Connexion)
    	cmd.Parameters.AddwithValue("@nombre" ,Nombre2.Text)
    	
    	Dim cmd As New SqlDataAdapter(cmd)
    	Dim dt As New DataTable
    	cmd.Fill(dt)
    	
    	DataGridView1.DataSource = dt
    	
    End Using

    puedes usar el LIKe para buscar por aproximacion o sino el WHERE Nombre = @nombre

    para una busqueda exacta

    http://www.connectionstrings.com/sql-server-2008/

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 20 de octubre de 2013 22:23

Todas las respuestas

  • hola

    pero SqlCeConnection se usa para base de datos de Sql Compact, o sea .sdf

    esto no tiene que ver con Sql Server, o  sea una db .mdf

    Using Connexion As New SqlConnection(connstring)
    	Connexion.Open()
    	
    	Dim Consulta = "SELECT * FROM Usuarios WHERE Nombre LIKE '%' + @nombre + '%'"
    	Dim cmd As New SqlCommand(Consulta, Connexion)
    	cmd.Parameters.AddwithValue("@nombre" ,Nombre2.Text)
    	
    	Dim cmd As New SqlDataAdapter(cmd)
    	Dim dt As New DataTable
    	cmd.Fill(dt)
    	
    	DataGridView1.DataSource = dt
    	
    End Using

    puedes usar el LIKe para buscar por aproximacion o sino el WHERE Nombre = @nombre

    para una busqueda exacta

    http://www.connectionstrings.com/sql-server-2008/

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 20 de octubre de 2013 22:23
  • Hola leandro, es que estoy trabajando con Sql Compact. y estoy intentando hacer tu ejercicio pero me sale este error cuando intento agregar mi busqueda:

    @Nombre : EDUARD - La cadena de entrada no tiene el formato correcto.

    lunes, 21 de octubre de 2013 4:22
  • Prueba con algo así:

            Dim DA As SqlCeDataAdapter
            Dim DS As New DataSet
            comando = conexion.CreateCommand
            comando.CommandText = "SELECT * FROM Usuarios WHERE Nombre'" & Nombre2.Text & "'"
            DA = New SqlCeDataAdapter(comando)
            DS.Reset()
            DA.Fill(DS, "Texto")
    
            DataGridView1.DataSource = DS.Tables("Texto")

    Saludos!

    lunes, 21 de octubre de 2013 15:06
  • Hola Eduard:

     Lo primero que te recomiendo es que nunca concatenes los valores en tu consulta como lo estas haciendo en su lugar usa parámetros como bien lo hace el ejemplo que te proporciono leandro que en principio debería de funcionar.

    Protegerse de un ataque SQL Injection

    How To: Protect From Injection Attacks in ASP.NET

    Para el error que comentas podrías subir el codigo que estas implementando, tal cual como lo tienes en el momento en que te produce el error?


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 21 de octubre de 2013 15:20
  • Hola Luis este es el codigo que coloco el que leandro me mostro:

            Using Connexion As New SqlCeConnection(connstring)
                Connexion.Open()
                Dim Consulta = "SELECT * FROM Usuarios WHERE Nombre LIKE '%' + @Nombre + '%'"
                Dim cmd As New SqlCeCommand(Consulta, Connexion)
                cmd.Parameters.AddWithValue("@Nombre", Nombre2.Text)
                Dim cmd2 As New SqlCeDataAdapter(cmd)
                Dim dt As New DataTable
                cmd2.Fill(dt)
                DataGridView1.DataSource = dt
            End Using

    lunes, 21 de octubre de 2013 15:50
  • Javier romero tampoco me funciona :(
    lunes, 21 de octubre de 2013 15:55
  • Hola:

     Pues el código parece estar bien lo que me extraña es el mensaje que recibes:

    @Nombre : EDUARD - La cadena de entrada no tiene el formato correcto.

    me imagino que el tipo de dato  de tu column es Varchar cierto?,  a simple vista no logro dar con el error, que pasa si cambias el Like por el =,  osea:

    Consulta = "SELECT * FROM Usuarios WHERE Nombre = @Nombre"

    Y al parametro le envias un valor que sepas que existe en tu BD, recibes el mismo mensaje de error?


    Saludos desde Monterrey, Nuevo León, México!!!

    lunes, 21 de octubre de 2013 16:11
  • Si los daros son VARCHAR, y si me cree dos registros diferentes y mando a buscar uno de ellos y me da ese error.

    como lo colocas si funciona:

    Consulta = "SELECT * FROM Usuarios WHERE Nombre = @Nombre"

    pero no habra forma de que busque por aproximacion como dice leandro? que al colocar una E y darle buscar me regrese informacion de todos los nombres que empiecen por E?

    lunes, 21 de octubre de 2013 16:43