Problème IsDBNull, len et trim

Résolu
autodidacte3 Messages postés 58 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 25 décembre 2014 - 26 mai 2013 à 13:24
autodidacte3 Messages postés 58 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 25 décembre 2014 - 27 mai 2013 à 10:01
Bonjour,
Après désactivation Microsoft.VisualBasic dans les propriétés du projet ?

Les erreurs sont en rouge barrées

Do While IsDBNull(ds.Tables("Liste_Amis").Rows.Count - 1 <> i) = False

MaskedTextBox2.Text = Trim(TB_PrgCentralises.Text) + " " & Trim(TB_PrgDecentralises.Text)

If Len(APs.Text) > 18 Or Not IsNumeric(Me.APs.Text) Then
APs.Select()
cmd.Parameters.AddWithValue("", APs.Text.Trim())
Exit Sub
Else
cmd.Parameters.AddWithValue("APs.Trim()", APs.Text.Trim())
End If

Remarque : Trim est mentionné comme erreur mais pas celui en dessus ?

cmd.Parameters.AddWithValue("?.Trim()", Trim(txt_PrgCentralise.Text.ToUpper) + " " & Trim(txt_PrgDecentralise.Text.ToUpper)

Merci de votre aide.

6 réponses

NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 159
27 mai 2013 à 09:45
Bonjour,

Ta boucle ne s'arrête que par ce qu'il y a le Exit Do
Do While True est tout aussi efficace que ta condition actuelle.

If IsDBNull(ds.Tables("Decision").Rows(i).Item(0)).ToString Then
If typeof ds.Tables("Decision").Rows(i).Item(0) is dbnull Then

Dans ton cas, je mettrais plutôt un For Each sur le Rows plutôt qu'un Do/Loop
For Each lRow As ... in ds.Tables("Decision").Rows(i)
If TypeOf lRow.Item(0) Is DBNull Then
Cela évite une erreur si toute la colonne est NULL.

Mon site
3
NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 159
26 mai 2013 à 13:58
Bonjour,

Do While IsDBNull(ds.Tables("Liste_Amis").Rows.Count - 1 <> i) = False
Typeof Mavaleur Is DBNull

Trim(MaChaine)
Machaine.Trim

Len(MaChaine)
Machaine.Length

IsNumeric(*)
Integer/Double/Single/Long/... .TryParse

"APs.Trim()"
Est une chaine, si tu veux le trim de APs, il faut retirer les "

Si tu veux une saisie uniquement numérique, regardes du coté du contrôle NumericUpDown.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
autodidacte3 Messages postés 58 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 25 décembre 2014
26 mai 2013 à 15:29
Excise moi, mais j'ai pas trouvé la bonne écriture de ma boucle avec ton exemple : Typeof Mavaleur Is DBNull

Do While IsDBNull(ds.Tables("Liste_Amis").Rows.Count - 1 <> i) = False

je ne te remercie jamais assez NHenry.
0
NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 159
26 mai 2013 à 15:44
Bonjour,

IsDBNull(ds.Tables("Liste_Amis").Rows.Count - 1 <> i) = False
L'expression :
IsDBNull(ds.Tables("Liste_Amis").Rows.Count - 1 <> i)
Renvoi toujours False, car
ds.Tables("Liste_Amis").Rows.Count - 1 <> i
Retourne un booléen.

Donc, ta boucle est infinie.

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0

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

Posez votre question
autodidacte3 Messages postés 58 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 25 décembre 2014
27 mai 2013 à 09:34
Bonjour, mais ma boucle fait bien son rôle sauf que je ne trouve pas comment remplacer IsDBNull par "Typeof Mavaleur Is DBNull" Après désactivation Microsoft.VisualBasic

Dim i As Integer
        Dim j As Integer
        i = 0
        Do While IsDBNull(ds.Tables("Decision").Rows.Count - 1 <> i) = False
            If IsDBNull(ds.Tables("Decision").Rows(i).Item(0)).ToString Then
                Me.txtRub1Detail.Text = ""
                Me.txtRub12Detail.Text = ""
                Me.txtRub13Detail.Text = ""
            Else
                Me.txtRub1Detail.Text = (ds.Tables("Decision").Rows(Place_Enregistrement).Item(16)).ToString
                Me.txtRub12Detail.Text = (ds.Tables("Decision").Rows(Place_Enregistrement).Item(17)).ToString
                Me.txtRub13Detail.Text = (ds.Tables("Decision").Rows(Place_Enregistrement).Item(18)).ToString
                Exit Do
            End If
            i = i + 1
            Loop




-----------------------------------------------
time alone time will tell
0
autodidacte3 Messages postés 58 Date d'inscription mardi 21 juillet 2009 Statut Membre Dernière intervention 25 décembre 2014
27 mai 2013 à 10:01
"Cela évite une erreur si toute la colonne est NULL".

Ouiiii!!! je n'y avais pas pensé

merci encore pour le "For Each sur le Rows"

je vais m'y mettre au travail.









-----------------------------------------------
time alone time will tell
0
Rejoignez-nous