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

Windows Forms Discussion :

ajouter un enregistrement à un datatable


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 93
    Points
    93
    Par défaut ajouter un enregistrement à un datatable
    l'erreur c'est :"La référence d'objet n'est pas définie à une instance d'un objet"
    au niveau de ligne :rw = dsProjetOUT.Tables("groupesprojets").NewRow !!!!!

    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim rw As DataRow
            rw = dsProjetOUT.Tables("groupesprojets").NewRow
            rw("anneegr") = Me.txAnnee.text
            rw("numgr") = Me.txgroupeNum.text
            dsProjetOUT.Tables("groupesprojet").Rows.Add(rw)

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Soit dsProjetOUT n'est pas initialisé et vaut Nothing
    Soit la table groupesprojets n'existe pas dans le dataset

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    Merci beaucoup pour l'aide !!
    en fait c'est le data set qui ne contenait pas la table "groupesprojets" là j'ai plus l'erreur mais les informations ne sont pas insérées dans la base !!!!!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    il faut faire Update avec un DataAdapter
    http://dotnet.developpez.com/articles/ado2/

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    en fait oui je fait un update avec DataAdapte dans une autre classe (classe metier)
    voici la suite de code en haut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      dsProjetOUT.AcceptChanges()
            ObjProjetIUT.update(dsProjetOUT.Tables("groupesprojets"))
    voici le code de la function update :

    Code : 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
    Function update(ByVal dtNewDT As DataTable) As DataSet
            If (dtNewDT.TableName = "groupesprojets") Then
                If (objGroupProjet.updateGroupe(dtNewDT)) Then
                    Return Me.GroupeProjetInfo
                Else
                    Return Nothing
                End If
            End If
            If (dtNewDT.TableName = "etudiants") Then
                If (ObjEtud.updateEtudiant(dtNewDT)) Then
                    Return GroupeProjetInfo()
                Else
                    Return Nothing
                End If
            Else
                Return Nothing
            End If
        End Function
    "objGroupProjet" c'est la classe d'accès aux données.qui exécute la methode update du DataAdapte. normalement ça marche parce que en utilisant une autre méthode j'ai eu des erreur sql !!!! j'espère que j'étais claire !

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Si tu fais AcceptChanges juste avant l'Update, ça ne peut pas marcher... AcceptChanges, comme son nom l'indique, accepte tous les changements dans le DataSet, c'est à dire qu'ils ne sont plus considérés comme des changements, et donc Update n'a plus rien à faire...

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    ah ! ok !!! c'est fait j'ai supprimé !! mais en fait je me suis rendu compte que le problème c'est aussi au niveau du l'appel de la méthode update dans la classe métier apparemment j'arrive pas à lancer !!!
    j'ai essayé de lancé un msgbox dans le code de la fonction et ce dernier ne s'affiche pas !!!!! je vois pas l'erreur !!!!!!!!!

    sachant que j'ai changé = avec eqauls !! et ça marche pas !!!


    ce que j'arrive pas à comprendre que c'est la classe metier elle contient deux méthodes pour l'accès aux données une pour récupérer les données et une pour modifier !!! alors que je peut lancer la méthode de récupération, j'arrive pas à lancer la méthode update !!!!!!!!!!!!

  8. #8
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    finalement j'ai localisé le problème c'est au niveau la fontion update de ma classe metier !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DataGridView1.DataSource = dsetudiant.Tables("groupesprojets")
            If (DataGridView1.DataSource.TableName = ("groupesprojets")) Then
                MsgBox("je suis ici etudiant")
            End If
    dans ce code le msgbox ne s'affiche alors que dans celui ci il s'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DataGridView1.DataSource = dsetudiant.Tables("etudiants")
            If (DataGridView1.DataSource.TableName = ("etudiants")) Then
                MsgBox("je suis ici etudiant")
            End If
    en fait dans les deux cas ma datagrid elle m'affiche les données de chaque table mais le if lui il marche seulement si tableName= etudiants !!!!!!!!!!! :'(:'(:'(

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 93
    Points
    93
    Par défaut
    le problème c'est juste un problème de majuscule !!! tout bête !!
    Merci à vous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/10/2005, 20h13
  2. ajout d'enregistrement +
    Par jamesys dans le forum VB 6 et antérieur
    Réponses: 19
    Dernier message: 05/09/2005, 19h13
  3. ajouter un enregistrement en vba
    Par xtaze dans le forum Access
    Réponses: 4
    Dernier message: 13/06/2005, 21h30
  4. [MFC]CRecordset-Ajouter un enregistrement
    Par dum's dans le forum MFC
    Réponses: 1
    Dernier message: 01/06/2005, 15h20
  5. SQL et Access : ajouter plusieurs enregistrements
    Par Bernard M dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/04/2004, 22h39

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