Principales respuestas
problemas con ejecución de consulta en SqlServerCe

Pregunta
-
Hola de nuevo, necesito ayuda, tomando la idea de la publicación de Leandro Tuttini en su blog he intentado hacer lo siguiente:
Imports System.Data.SqlServerCe Public Class asignaPregunta Private Sub ConsultarDatos(ByVal idBuscar As Int32) Dim sql As String = "SELECT idEncuesta, nomEncuesta, tipoEncuesta, numInterrogantes" & _ "FROM encuesta" & _ "WHERE idEncuesta=@idBuscar" Using conn As New SqlCeConnection(cadenaConexion.cadenaConexion.ToString()) Dim commandBuscar As New SqlCeCommand(sql, conn) commandBuscar.Parameters.AddWithValue("idEncuesta", idBuscar) conn.Open() Dim leer As SqlCeDataReader = commandBuscar.ExecuteReader() If leer.Read() Then Label7.Text = Convert.ToInt32(leer("idEncuesta")) Label8.Text = Convert.ToString(leer("nomEncuesta")) Label9.Text = Convert.ToString(leer("tipoEncuesta")) Label7.Text = Convert.ToInt32(leer("numInterrogantes")) End If End Using End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Try Dim idBuscar As Int32 Int32.TryParse(TextBox1.Text, idBuscar) ConsultarDatos(idBuscar) 'Catch ex As Exception 'MessageBox.Show(ex.Message) 'End Try End Sub End Class
el error que me da es el siguiente:
Error al analizar la consulta. [ Token line number = 1,Token line offset = 82,Token in error = idEncuesta ]
Gracias por su ayuda.
Programming Tools
Respuestas
-
hola
algo que noto rapidamente es que no has dejado un espacio entre la columna y le FROM y el final con el WHERE, esto cuando cambias de lines
Dim sql As String = "SELECT idEncuesta, nomEncuesta, tipoEncuesta, numInterrogantes " & _
"FROM encuesta " & _
"WHERE idEncuesta=@idBuscar"veras alli que al finald e cada liena dejo un espacio para que no se uan con la inferior, esto podria ser una causa de problemas
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Eduardo PorteschellerModerator miércoles, 27 de abril de 2011 18:23
-
algo mas que note es que defines
"WHERE idEncuesta=@idBuscar"
pero luego usas
commandBuscar.Parameters.AddWithValue("idEncuesta", idBuscar)
o sea si el parametro es @idBuscar en el AddWithValue() deberias pasarle el mismo nombre
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Eduardo PorteschellerModerator miércoles, 27 de abril de 2011 18:23
-
la diferencia es que en uno usas parametros y en el otro unes la query por medio de un string
prolemas como tipos de datos, o si estas en un entorno web los ataques por sql injection seria evitados si usas parametros por eso es muy bueno y lo recomiendo simrpe que veo que no se esta usando
por ahi en tu caso no lo has notado, pero cuando envies por parametros ditopso de datos decinmales o de fehca es mucho ams simple hacerlo que uniendo el string
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Eduardo PorteschellerModerator miércoles, 27 de abril de 2011 18:23
Todas las respuestas
-
hola
algo que noto rapidamente es que no has dejado un espacio entre la columna y le FROM y el final con el WHERE, esto cuando cambias de lines
Dim sql As String = "SELECT idEncuesta, nomEncuesta, tipoEncuesta, numInterrogantes " & _
"FROM encuesta " & _
"WHERE idEncuesta=@idBuscar"veras alli que al finald e cada liena dejo un espacio para que no se uan con la inferior, esto podria ser una causa de problemas
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Eduardo PorteschellerModerator miércoles, 27 de abril de 2011 18:23
-
-
algo mas que note es que defines
"WHERE idEncuesta=@idBuscar"
pero luego usas
commandBuscar.Parameters.AddWithValue("idEncuesta", idBuscar)
o sea si el parametro es @idBuscar en el AddWithValue() deberias pasarle el mismo nombre
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Eduardo PorteschellerModerator miércoles, 27 de abril de 2011 18:23
-
-
la diferencia es que en uno usas parametros y en el otro unes la query por medio de un string
prolemas como tipos de datos, o si estas en un entorno web los ataques por sql injection seria evitados si usas parametros por eso es muy bueno y lo recomiendo simrpe que veo que no se esta usando
por ahi en tu caso no lo has notado, pero cuando envies por parametros ditopso de datos decinmales o de fehca es mucho ams simple hacerlo que uniendo el string
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentina- Marcado como respuesta Eduardo PorteschellerModerator miércoles, 27 de abril de 2011 18:23