Problème conversion string --> integer

Signaler
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011
-
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011
-
Bonjour voilà j'ai deux textbox.
Une contenant une chaîne de caractères qui est égale à un chiffre.
Ce que je voudrais c'est que le texte contenu dans la deuxième textbox soit égale au nombre chiffres ou nombres contenu dans la première en y ajoutant 1.
Pour cela il faut faire la conversion du type string au type integer.
J'ai essayer ce code :

 Dim tb4 As TextBox = FormView1.FindControl("sujet_idTextBox")
 Dim tbcompteur As TextBox = FormView2.FindControl("compteurTextBox")
        Dim s As String
        s = tbcompteur.Text
        Dim i As Integer
        i = CType(s, Integer)
        tb4.Text = i + 1

mais cela ne marche pas, j'ai l'erreur :
"La référence d'objet n'est pas définie à une instance d'un objet."

6 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Bonjour,

Si tu es sur que ton String est un nombre (via un validateur) alors tu peux faire un int.parse, sinon un int.tryparse (mais dans ce cas je te conseille fortement d'utiliser un validateur)

<hr />Cyril - MVP ASP.net - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
Salut,

Tu dois avoir ta chaine ou ton composant non renseigné
pour avoir ce type de message

tbcompteur = null
ou
tbcompteur.Text = null

Apres un int.parse ou int.tryparse
une fois la validité checkée (javascript + serveur) controle de validation par exemple.

Bon dev
Messages postés
410
Date d'inscription
dimanche 1 février 2004
Statut
Membre
Dernière intervention
8 mai 2010

bonjour,
sur quelle ligne précisément  as-tu l'erreur?

SuperBouly
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

L'erreur est sur la ligne  : s = tbcompteur.Text

Je vais ré expliquer ce que je veux faire :

J'ai deux textbox.
L'une contient un nombre qui provient d'une base de donnée ( int ).
Ce que je veux c'est que la deuxième soit égale au nombre de la première +1.
Il y a peux être une meilleur façon d'y arriver ?
D'avance merci
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
33
regardes-tu la valeur de

if(tbcompteur != null){
if(tbcompteur.Text != null{
// c'est ok
}else{
Label1.Text = "tbcompteur.text est null";
//dans ce cas c'est text qui est = ""
}
}
else
{
Label1.Text = "tbcompteur est null";
//dans ce cas c'est FormView2.FindControl("compteurTextBox")
//qui ne trouve pas le controle compteurTextBox
}
Messages postés
353
Date d'inscription
samedi 11 décembre 2010
Statut
Membre
Dernière intervention
29 juin 2011

Merci pour toute vos réponses j'ai regarder vos codes mais j'ai trouver une autre solution.
J'ai une dropdownlist qui contient mon nombre et après je fais ce code et sa marche :

 Dim tb4 As TextBox = FormView1.FindControl("sujet_idTextBox")
        tb4.Text = DropDownList2.SelectedValue + 1

Voila @+