Principales respuestas
Como realizar una consulta en SqlServer 2008

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
- Cambiado Enrique M. Montejo martes, 29 de octubre de 2013 7:39 Acceso a datos
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- Propuesto como respuesta JoséLuisGarcía lunes, 21 de octubre de 2013 15:15
- Marcado como respuesta Eduard Sifontes viernes, 23 de mayo de 2014 3:02
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- Propuesto como respuesta JoséLuisGarcía lunes, 21 de octubre de 2013 15:15
- Marcado como respuesta Eduard Sifontes viernes, 23 de mayo de 2014 3:02
-
-
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! -
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!!!
-
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
-
-
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!!!
-
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?
- Editado Eduard Sifontes lunes, 21 de octubre de 2013 16:45