Comment base64 coder un guid dans le server sql

Comment puis-je recréer le code c # suivant avec un type de données uniqueidentifier dans sql server 2005.

ssortingng encoded = Convert.ToBase64Ssortingng(guid.ToByteArray()); 

J'ai essayé plusieurs exemples que je suis tombé sur l'Internet tels que http://www.vbforums.com/showthread.php?t=554886 mais ils returnnent tous des strings plus longues que la fonction .net.

L'exemple de votre lien fonctionne si vous passez un identificateur unique

 Guid guid = Guid.NewGuid(); ssortingng encoded = Convert.ToBase64Ssortingng(guid.ToByteArray()); Console.WriteLine(guid); Console.WriteLine(encoded); 

pour

 32705fe3-cedd-4bfd-a881-9dd11e543f9e 419wMt3O/UuogZ3RHlQ/ng== 

Et

 declare @guid uniqueidentifier = '32705fe3-cedd-4bfd-a881-9dd11e543f9e' select dbo.f_BinaryToBase64(@guid) 

pour

 419wMt3O/UuogZ3RHlQ/ng== 

Je peux me tromper mais je pense que ce n'est pas possible. L'algorithm du côté C # est différent de la combinaison que vous pouvez find dans la partie sql.


Pour résoudre ce problème, je recommand de tout faire d'un seul côté. c'est-à-dire: remplir le db du côté c # ou tout faire dans la partie sql.

mon guid était dans une colonne nvarchar (MAX) nommée 'guid' et ressemblait à ceci

  {4A449FE1-8989-4D69-935C-9E918244DEED} 

Prendre quelques étapes c'est-à-dire montrer mon travail. J'ai ajouté trois colonnes à ma table guidreal, guidbinary, guidbase64. Je réalise que cela peut être compressé :-).

1.

 update [Database].[dbo].[LotofRecords] set guidreal = Cast(Replace(Replace([guid],'{',''),'}','') AS UNIQUEIDENTIFIER) 

2.

 update [Database].[dbo].[LotofRecords] set guid_binary = cast(guidreal as VARBINARY(MAX)) 

3.

 update [Database].[dbo].[LotofRecords] set guidBase64 = cast(N'' as XML).value( 'xs:base64Binary(xs:hexBinary(sql:column("guid_binary")))' ,'nvarchar(25)' ) 

ce qui m'a donné

 4Z9ESomJaU2TXJ6RgkTe7Q== 

décoder en return à varbinary en utilisant

 select cast(N'' as XML).value( 'xs:base64Binary(sql:column("guidbase64"))' ,'varbinary(max)' ) ,guid_binary from [Database].[dbo].[LotofRecords]