IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

La valeur ne peut pas être null. Nom du paramètre : objectType [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 92
    Points : 63
    Points
    63
    Par défaut La valeur ne peut pas être null. Nom du paramètre : objectType
    bonjour,
    voilà mon soucis, j'ai rajouté un textbox et un combobox pour faire un filtre dans mon datagridview et depuis, j'ai ce message d'erreur comme quoi un objecttype a une valeur nulle mais je n'arrive pas à trouver d'où cela pourrait venir... pourriez-vous m'indiquer une piste?
    voici le code rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Private Sub Filter_Change() Handles txt_SearchArgs.TextChanged, cbo_Filter.SelectedIndexChanged
            '
            'Nous allons changer la propriété "Filter" de notre BindingSource 
            Dim FilterArgs As String = cbo_filter.Text & " LIKE '" & txt_SearchArgs.Text & "%'"
            '
            REM: la propriété "Filter" du BindingSource fonctionne comme une clause "WHERE" en SQL.
            REM: nous utilisons la clause "LIKE" et le joker "%" pour préciser que le champ commence par le texte
            REM: saisi dans le TextBox "txt_SearchArgs. 
            '
            'Application du filtre 
            PériodesBindingSource.Filter = FilterArgs
            '
        End Sub
    et dans form1_load:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cbo_filter.selectedindex=0

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Tu dois rentrer dans ton évenement alors que ton objet texbox est inexistant.
    Vas-y en posant un point d'arrêt sur ta fonction pour confirmer.
    Le problème vient probablement du fait que ta combobox choisit un élément (le premier par exemple) lors du "InitializeComponents" et à ce moment là ta textbox n'éxiste pas encore

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 92
    Points : 63
    Points
    63
    Par défaut
    ben maintenant, j'ai refait mon programme en ajoutant pas à pas les différents éléments pour le tri et c'est ma sub de calcul dans chaque ligne de mon datagrid qui ne fonctionne plus...
    alors que je n'ai pas touché son code... par contre, je n'ai plus le problème avec objecttype...
    (encore heureux que je fais des sauvegardes à chaque étape importante de ma programmation...)

    j'ai essayé de mettre en commentaire tout le code pour le filtre mais ça ne change rien
    mon bouton qui a (quasiment) le même code, lui fonctionne sans problèmes, j'ai récupéré le code de ce bouton, retransformé pour le mettre sur cellvaluechanged (ce que j'avais fait ce matin et qui fonctionnait) mais cela ne marche tjs pas...

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    ça marche pas OK, mais si on ne sais pas ou ça bloque et qu'est-ce qui bloque on va avoir du mal à t'aider ...

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 92
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par asmduty Voir le message
    ça marche pas OK, mais si on ne sais pas ou ça bloque et qu'est-ce qui bloque on va avoir du mal à t'aider ...
    ben j'ai tout repris à l'endroit où j'en étais ce matin et ça fonctionne alors que j'ai fait exactement comme avant...

    pour le point d'arret, vu qu'en désactivant entièrement le code qui est en rapport avec le tri, cela ne changeait rien, je pensais que le point d'arrêt était inutile non?
    autrement, je le fais jusqu'a mon code dans form_load ou la sub?

  6. #6
    Membre chevronné
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Points : 1 839
    Points
    1 839
    Billets dans le blog
    2
    Par défaut
    Les points d'arret ne sont jamais inutiles

    Combien de fois l'erreur n'était pas du tout là où je l'attendais ...

    La 1ere choses à faire quand tu as un bug c'est de trouver le bout de code qui merde.
    Pour cela, 2 étapes :
    - Comment reproduire l'erreur
    - Point d'arret pour suivre le déroulement (Si tu ne peux pas mettre des points d'arrêt... et ben tu fais des traces dans un fichier)

    Bienvenue dans le monde mistérieux détective du débugage

  7. #7
    Membre averti
    Homme Profil pro
    Caféinomane
    Inscrit en
    Septembre 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Caféinomane

    Informations forums :
    Inscription : Septembre 2011
    Messages : 202
    Points : 391
    Points
    391
    Par défaut
    Comme beaucoup d'évènements, TextChange est appelé à la création du contrôle lors de l’exécution. A ce moment le combobox n'a pas forcément été créé (ce qui explique que des fois ça marche, des fois pas... Tout dépend de l'ordre dans lequel sont créés les composants).

    Pour être sûr de ne traiter les évènements qu'une fois que la form est complètement opérationnelle, une astuce consiste à définir une variable globale :

    En début de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Class Ma_Form
        Dim formloaded As Boolean = False
     
    (...)
    Lors de l'évènement FormLoad :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub Ma_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        formloaded = true
    (...)
    Et enfin, lors de l'évènement TextChanged :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub Filter_Change() Handles txt_SearchArgs.TextChanged, cbo_Filter.SelectedIndexChanged
            If (formloaded = False) Then Return
    (...)
    Comme ça si l'évènement est appelé pendant la création du contrôle, le code ne sera pas exécuté.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Septembre 2011
    Messages : 92
    Points : 63
    Points
    63
    Par défaut
    merci, je vais placer ton code pour être sur mais jusqu'à présent, cela fonctionne...
    bonne journée à tous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 21/10/2013, 20h19
  2. argument 'dataType' ne peut pas être null
    Par Mirmillon dans le forum ADO.NET
    Réponses: 3
    Dernier message: 29/07/2012, 17h35
  3. Réponses: 3
    Dernier message: 18/08/2010, 15h26
  4. Réponses: 6
    Dernier message: 03/09/2003, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo