none
Comparar GUID con campo de una tabla RRS feed

  • Pregunta

  • Holaa!

    Tengo el Guid de usuario loggeado en una variable, y quiero comparar este GUID con los GUID almacenados en una tabla, pero me da un error de este tipo, y no se como hacer para comparar los GUIDS... aquí os pongo el código:

    Error:


    Sintaxis incorrecta cerca de 'f36'.
    Advertencia: el valor de la coma flotante '889e-670' es demasiado pequeño. Será interpretado como 0.


    Código:

     

    Dim iduser As Guid
    Dim idusers As String
    iduser = Membership.GetUser(User.Identity.Name).ProviderUserKey
    idusers = iduser.ToString
    Dim fav As Integer
    Dim strSQLfav As String = "SELECT * from favorits WHERE id_client = " & idusers & " id_est = " & idest
    Dim dafav As New SqlDataAdapter(strSQLfav, ConnectionString)
    Dim dtfav As New DataTable
    Dim dsfav As New DataSet
    dafav.Fill(dtfav)              <--- Aquí es donde da el error

    En la base de datos he provado todo tipo de datos para almacenar el GUID he leido q son del tipo Uniqueidentifier, pero me sigue dando el error...

    Alguna sugerencia??

    Muchas gracias!!


    Ferran
    martes, 19 de mayo de 2009 9:52

Respuestas

  • Hola Ferrán,

    Creo que hay un par de cosillas en el select.
    La primera es que yo rodearía las cadenas de los Guids con comillas simples ('). Creo que el error es que no consigue "parsear" correctamente la cadena de guid.
    La otra es que me parece que falta una condición AND...

    Al final quedaría:
    Dim strSQLfav As String = "SELECT * from favorits WHERE id_client = '" & idusers & "' AND id_est = '" & idest & "'"

    Espero que te resulte de utilidad,




    Si este mensaje responde a tu pregunta, márcalo como respuesta correcta o vótalo como útil.
    Sergio Ortiz
    i-Card Software CTO

    View Sergio Ortiz's profile on LinkedIn View Sergio Ortiz's profile on Xing
    • Marcado como respuesta Ferran P jueves, 21 de mayo de 2009 9:33
    martes, 19 de mayo de 2009 14:15

Todas las respuestas

  • Hola Ferrán,

    Creo que hay un par de cosillas en el select.
    La primera es que yo rodearía las cadenas de los Guids con comillas simples ('). Creo que el error es que no consigue "parsear" correctamente la cadena de guid.
    La otra es que me parece que falta una condición AND...

    Al final quedaría:
    Dim strSQLfav As String = "SELECT * from favorits WHERE id_client = '" & idusers & "' AND id_est = '" & idest & "'"

    Espero que te resulte de utilidad,




    Si este mensaje responde a tu pregunta, márcalo como respuesta correcta o vótalo como útil.
    Sergio Ortiz
    i-Card Software CTO

    View Sergio Ortiz's profile on LinkedIn View Sergio Ortiz's profile on Xing
    • Marcado como respuesta Ferran P jueves, 21 de mayo de 2009 9:33
    martes, 19 de mayo de 2009 14:15
  • umando a lo que comenta Sergio:

    Tienes un problema en el formato de los datos al concatenar. Yo evitaría concatenar y utilizaría parámetros, te ahorraras problemas y ataques de inyección SQL.

    customerInserts.Parameters.Add("@" + SyncSession.SyncClientId, SqlDbType.UniqueIdentifier);


    http://msdn.microsoft.com/es-es/library/microsoft.synchronization.data.server.syncadapter.aspx

    Saludos


    Si la respuesta ha sido de utilidad marca la como respuesta correcta.

    Marc Rubiño
    Web: http://lonetcamp.com
    Blog: http://geeks.ms/blogs/mrubino

    martes, 19 de mayo de 2009 21:12