Conervtir un string en long

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

6 réponses

LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
14 avril 2011 à 17:27
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é !!!
0
ibnfez Messages postés 3 Date d'inscription jeudi 21 décembre 2006 Statut Membre Dernière intervention 15 avril 2011
15 avril 2011 à 11:37
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);
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
15 avril 2011 à 12:02
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..."
0
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
15 avril 2011 à 12:46
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
15 avril 2011 à 12:52
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 );
}
0
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
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 !!!
0
Rejoignez-nous