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