Conervtir un string en long

Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011
- - Dernière réponse : ibnfez
Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011
- 15 avril 2011 à 17:58
Bonjour,
je galère depuis deux jours pour la conversion d'un string recupérer grace à un texfield (CodeTextfield.Text) que je doit convertir en long pour pouvoir lancer un requete dans ma base de données (sql server). Mais à chaque fois il m'affiche : Le format de la chaîne d'entrée est incorrect.

J'ai déjà utilisé ces méthodes mais en vain: Convert.ToInt64();
TryParse();(et je vois pas comment cette méthode me permet de récupérer la valeur du textfield si le bool retourné est =false).

Merci d'avance.
Afficher la suite 

6 réponses

Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
0
Merci
salut,

Voici l'utilisation de TryParse :
Int64 longValue;
if( Int64.TryParse( "2451263", out longValue ) )
{
    ;// longValue contient la valeur du textfield sous forme d'un Int64
}
else
    ;// la conversion a échoué !!!
Commenter la réponse de LUDINSKI
Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011
0
Merci
Oui mais je voudrais savoir qu'est qui peut faire échouer la conversion !!! et que signifie ce message : Le format de la chaîne d'entrée est incorrect.

si je fait :
long code = Convert.ToInt64(CodeTextField.Text);
ou
long code = long.Parse(CodeTextField.Text);
Commenter la réponse de ibnfez
Messages postés
1183
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
12
0
Merci
salut
simplement un caractère alpha non numérique saisie dans ton CodeTextField.Text...

Arthenius
"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
0
Merci
Salut,

Un long (ou Int64) est un nombre entier, donc la conversion peut échouer si :
- un des caractères suivant est contenu dans la chaîne :
* non numérique
* espacement (devant ou derrière -> OK mais pas entre les chiffres)
* une virgule ou un point
- la valeur saisie est trop petite (< long.MinValue)
- la valeur saisie est trop grande (> long.MaxValue)
Commenter la réponse de LUDINSKI
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
0
Merci
Si tu souhaites connaître la cause de l'échec de la conversion :
try
{
    long longValue = long.Parse( CodeTextField.Text );

}// Exception générée si un caractère autre que numérique est saisie (excepté '-' en début de chaîne)
catch( FormatException formatExc )
{
    MessageBox.Show( formatExc.Message );

}// Exception générée si le nombre est supérieur à long.MaxValue ou inférieur à long.MinValue
catch( OverflowException overflowExc )
{
    MessageBox.Show( overflowExc.Message );
}
Commenter la réponse de LUDINSKI
Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011
0
Merci
Merci pour votre disponibilité !!!
J'avais initialisé le textbox dans le page_load!!! et c'été pas très malin de ma part!!! merci et bon courage !!!
Commenter la réponse de ibnfez