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:
Esa es la función que generar las cadenas aleatorias, luego las llamo en la creación de una variable String: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
Código:
Y para finalizar lo convierto a Guid y lo añado a la tabla:Dim ClaveId As String = obtenerPassword(8) & "-" & obtenerPassword(4) & "-" & obtenerPassword(4) & "-" & obtenerPassword(4) & "-" & obtenerPassword(12)
Código:
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.Dim ClaveGuid As System.Guid = New System.Guid(ClaveId)
Espero puedan ayudarme, me estoy volviendo loco.
Gracias por adelantado