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 réference d'objet n'est pas définie à une instance d'un objet


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut la réference d'objet n'est pas définie à une instance d'un objet
    Bonjour tout le monde

    j'essaye de remplir un combobox avec des données de la base de données selon la valeur choisie dans un autre combobox (evenement selectindexchange) avec le code suivant :
    Code vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     If ass_cmb_custmr.Text = "PSA" Then
     
                Try
                    Dim sqlRequete = ""
                    Dim objDataAdapter As OleDb.OleDbDataAdapter
                    Dim objDataSet As New DataSet()
                    Dim objDataTable As DataTable
                    Dim objDataRow As DataRow
     
                    conn.Open()
     
                   sqlRequete = "SELECT nom_projet FROM projets where id_client=1"
                    objDataAdapter = New OleDb.OleDbDataAdapter(sqlRequete,conn)
                    objDataAdapter.Fill(objDataSet)
     
                    Dim i As Integer
                    If (objDataSet.Tables.Count > 0) Then
                        objDataTable = objDataSet.Tables(0)
     
     
                        For i = 0 To objDataTable.Rows.Count - 1
                            objDataRow = objDataTable.Rows(i)
                            Dim psg As String
                            ass_cmb_projet.Items.Add(objDataRow("nom_projet"))
     
     
                        Next
     
     
                    End If
                    conn.Close()
                Catch ex As Exception
                    MessageBox.Show("chargement des projets assemb: " & ex.Message)
                End Try
     
     
     
            ElseIf ass_cmb_custmr.Text = "RSA" Then .........


    quand j'instancié le combobox avec du code genre new combobox ca marche tres bien , mais quand jutilise celui de loutil graphique ca me donne l'erreur en question.

    merci pour votre aide

  2. #2
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Bonjour, sur quelle ligne avez-vous l'erreur ?

    L'erreur que vous avez mis en titre correspond en effet à une non instanciation d'un contrôle.

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    à vu de nez je dirais que l'erreur est sur la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ass_cmb_projet.Items.Add(objDataRow("nom_projet"))
    si la colonne nom_projet n'existe pas ca peut planter

    au passage à la place du for i tu peux utiliser un for each qui te donne directement l'instance sans aller la rechercher avec l'index
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre émérite Avatar de methylene
    Profil pro
    Inscrit en
    Février 2010
    Messages
    659
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 659
    Par défaut
    Au passage j'avais pas vu tout à l'heure, mais faut pas abuser :



    !!!

    Quand au For Each :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim dtrow As DataRow
     
    For Each dtrow in objDataTable.Rows
     
    Next
    Et Pol63 dois avoir raison sur la ligne qui merde, le reste étant bien instancié.
    Tu as surement dû oublier de l'ajouter à ta datatable.

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    salut

    merci pour vos réponses


    Pour gagner du temps et avancer dans mon projet j'ai passé par l'instanciation du combobox ce matin manuellement (via le code) , mais ca n'empêche de comprendre la cause du problème pour mes futurs applications .

    du coup j'ai crée un nouveau form pour tester les solutions proposées , surprise : mon code marche très bien sans le rectifier , à partir d'ici la discussion devient intéressante pourquoi ca marche pas dans le premier form de mon projet et ça marche dans un autre ? !?

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par badr007 Voir le message
    j'ai passé
    aïe ca pique les yeux ...



    si ton instanciation est manuelle, ca veut dire qu'elle fait trop tard

    le message d'erreur que tu as signifie qu'une de tes variables vaut nothing
    et nothing.items (ou nothing.quelquechose) n'est pas possible et génère une erreur
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/09/2007, 14h26
  2. Réponses: 2
    Dernier message: 09/09/2007, 14h25
  3. Réponses: 8
    Dernier message: 04/06/2007, 16h20
  4. Réponses: 24
    Dernier message: 01/06/2007, 09h26
  5. Réponses: 8
    Dernier message: 11/07/2006, 17h27

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