String et byte[] [Résolu]

babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention - 24 janv. 2008 à 16:09 - Dernière réponse : babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention
- 25 janv. 2008 à 09:32
Bonjour,

Je voudrais stocker un tableau de byte dans une zone nvarchar d'une base SQL serveur. J'ai donc fait cela pour convertir mon tableau de byte en string :

for (
int i = 0; i < strByte.Length; i++)
{

str2 +=
String.Format(
"{0:0000}", strByte[i]);
}
Exemple  :
   strByte[0] = 97
   strByte[1] = 0
   strByte[2] = 122
Donnera
   str2 = "009700000122"

mais je n'arrive pas à faire le contraire (mettre ces paquets de 4 caractèreS dans un tableau de byte)

Merci

DT
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 24 janv. 2008 à 17:02
3
Merci
Etant donnée que tu es sous SQL Serveur pourquoi ne pas utiliser un champ image pour stocker tes bytes ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]

Merci sebmafate 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de sebmafate
Meilleure réponse
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 25 janv. 2008 à 07:49
3
Merci
Hello,

Oui, comme l'a dit Sebmafate, la meilleure solution est d'enregistrer directement tes bytes dans la base de données.

Si tu tiens vraiment à enregistrer ceci sous forme de string, un moyen est de passer par Base64 :

Convert.ToBase64String

Convert.FromBase64String

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)

Merci SharpMao 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de SharpMao
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 24 janv. 2008 à 16:23
0
Merci
Et pourquoi ne pas utiliser tout simplement :

string System.Text.Encoding.Default.GetString( byte[] );

et

byte[] System.Text.Encoding.Default.GetBytes( string );

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Commenter la réponse de sebmafate
babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention - 24 janv. 2008 à 16:57
0
Merci
Pour être plus précis : mon tableau de bytes est en fait le résultat d'un cryptage d'une chaine de caractères. Chaîne que je dois stocker dans une table d'une base SQLServer.
J'ai utilisé au départ ce qui suit : 
new
UnicodeEncoding().GetString(CypherTexteByte);

et
new
UnicodeEncoding().GetBytes(CypherText)


Après stockage dans la base de données (colonne en nvarchar(250)), je ne suis plus capable de décrypter la zone. Elle semble donc être modifié

J'ai essayé en ASCII, UTF8 et UTF32 mais cela ne change rien. Le DEFAULT fonctionne mais le programme pourra tourner sur des PC de différents pays. Le DEFAULT risque donc de ne pas être partout identique (pour ce que j'en sais).
Mon idée est donc d'écrire les byte 'en clair' dans ma zone de texte... plus de problème de codage...

DT
Commenter la réponse de babe59
babe59 189 Messages postés vendredi 28 mai 2004Date d'inscription 27 novembre 2015 Dernière intervention - 25 janv. 2008 à 09:32
0
Merci
Merci à vous deux, j'étais parti sur l'insertion dans une zone "image" préconisé par Sebmafate mais la solution de ToBase64String me convient parfaitement.

Merci encore

DT
Commenter la réponse de babe59

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.