none
problemas con ejecución de consulta en SqlServerCe RRS feed

  • 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
    domingo, 24 de abril de 2011 20:03

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
    domingo, 24 de abril de 2011 20:12
  • 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
    domingo, 24 de abril de 2011 20:30
  • 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
    domingo, 24 de abril de 2011 22:20

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
    domingo, 24 de abril de 2011 20:12
  • Gracias Leandro, hoy no tengo ese error pero no muestra los datos!, o no genera la consulta
    Programming Tools
    domingo, 24 de abril de 2011 20:26
  • 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
    domingo, 24 de abril de 2011 20:30
  • Gracias pero yo estaba tomando como referencia lo publicado en tu blog?? cual es la diferencia de usar: por ejemplo

    "WHERE Id=@Id"

    y "WHERE Id=" & idBuscar

    ??


    Programming Tools
    domingo, 24 de abril de 2011 21:05
  • 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
    domingo, 24 de abril de 2011 22:20