Conervtir un string en long

Signaler
Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011
-
Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011
-
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.
A voir également:

6 réponses

Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
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é !!!
Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011

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);
Messages postés
1183
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
12
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..."
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
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)
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
6
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 );
}
Messages postés
3
Date d'inscription
jeudi 21 décembre 2006
Statut
Membre
Dernière intervention
15 avril 2011

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 !!!