Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema al convertir de String a Guid

Estas en el tema de Problema al convertir de String a Guid en el foro de .NET en Foros del Web. Holaaa! Les traigo un problemita que tengo a intentar pasar una cadena de caracteres a Guid para cuargarlo en un campo SQL que es UniqueIdentifier. ...
  #1 (permalink)  
Antiguo 30/07/2015, 01:45
 
Fecha de Ingreso: agosto-2012
Ubicación: Bilbao
Mensajes: 44
Antigüedad: 12 años, 3 meses
Puntos: 2
Pregunta Problema al convertir de String a Guid

Holaaa!

Les traigo un problemita que tengo a intentar pasar una cadena de caracteres a Guid para cuargarlo en un campo SQL que es UniqueIdentifier.

Tengo una función que me genera códigos alfanuméricos aleatorios y yo los concateno en la llamada:

Código:
    Private Function obtenerPassword(ByVal longitud_Clave As Integer) As String
        Randomize()
        Dim i As Byte
        Dim tipoCaracter As Integer
        Dim j As Integer
        Dim h As Integer
        Dim resultado As String
        Dim Numeros(10) As String
        Dim Mayusculas(25) As String
        Dim Minusculas(25) As String
        Dim generacionPSS() As String
        ReDim generacionPSS(longitud_Clave)
        j = 0
        For i = 48 To 57
            Numeros(j) = Chr(i)
            j = j + 1
        Next i
        j = 0
        For i = 65 To 90
            Mayusculas(j) = Chr(i)
            j = j + 1
        Next i
        j = 0
        For i = 97 To 122
            Minusculas(j) = Chr(i)
            j = j + 1
        Next i
        For h = 0 To longitud_Clave - 1
            'aleatorio para saber si concateno numero, mayuscula o minuscula
            tipoCaracter = CInt(Int((3 * Rnd())))
            Select Case tipoCaracter
                'numero
                Case 0
                    generacionPSS(h) = Numeros(CInt(Int((UBound(Numeros) * Rnd()))))
                    'minuscula
                Case 1
                    generacionPSS(h) = Minusculas(CInt(Int((UBound(Minusculas) * Rnd()))))
                    'mayuscula
                Case 2
                    generacionPSS(h) = Mayusculas(CInt(Int((UBound(Mayusculas) * Rnd()))))
            End Select

        Next h
        resultado = ""
        'concateno resultado para devolver solo un string y asi olvidarse de los vectores
        For j = 0 To longitud_Clave - 1
            resultado = resultado & generacionPSS(j)
        Next j
        obtenerPassword = resultado
    End Function
Esa es la función que generar las cadenas aleatorias, luego las llamo en la creación de una variable String:

Código:
Dim ClaveId As String = obtenerPassword(8) & "-" & obtenerPassword(4) & "-" & obtenerPassword(4) & "-" & obtenerPassword(4) & "-" & obtenerPassword(12)
Y para finalizar lo convierto a Guid y lo añado a la tabla:

Código:
Dim ClaveGuid As System.Guid = New System.Guid(ClaveId)
El problema es que en ejecución me salta un error que Guid solo puede tener valores Hexadecimales, y solo tiene valores Hexadecimales ya que los guiones son necesarios en un tipo Guid.

Espero puedan ayudarme, me estoy volviendo loco.

Gracias por adelantado
__________________
Bienvenidos a una nueva era.
  #2 (permalink)  
Antiguo 09/08/2015, 00:08
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 22 años
Puntos: 37
Respuesta: Problema al convertir de String a Guid

Quita los guiones y prueba, acaso los guiones los incorpore automaticamente el system.guid supongo
  #3 (permalink)  
Antiguo 12/08/2015, 09:00
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 12 años, 5 meses
Puntos: 3
Exclamación Respuesta: Problema al convertir de String a Guid

Lo que yo hice para guardar un Guid ,lo captura el usuario en una pantalla en varios campos luego los concateno y les agrego un guion una ves que ya tengo ese String se lo mando a la base de datos y en el procedimiento SQL convierto ese string al formato UniqueIdentifier y listo ya se guarda en la base de datos.

No se si sea la mejor manera pero me funciona, ¿alguna sugerencia para mejorarlo?

Espero te sirva

saludos

Etiquetas: hexadecimal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:05.