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 :

Ajout d'un enregistrement


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut Ajout d'un enregistrement
    salut à tous,

    J'ai un probléme qui cesse pas à me perturbé soit en mon application ADO.net ou en ASP.net.

    voilà,lorsque j'inclus mes codes qui sont tout à fait juste ce msg d'erreur se lancera
    La reference d'objet n'est pas définie à une reference d'objet
    SVP, aidez moi à trouver la solution et voilà le code que j'utulise pour ajouter un enregistrement dans ma table:
    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
    19
    20
    21
    22
    23
     
    Dim dr1 As DataRow
    dim ds as new dataset
    dim dt as datatable
    Dim cnx As SqlConnection = New SqlConnection("data source=.;integrated security=sspi;initial catalog=projet")
            cnx.Open()
     
            cmd.Connection = cnx
     
     
     
            dr1 = ds.Tables("admin").NewRow
            dr1(0) = TextBox1.Text.ToUpper
            dr1(1) = TextBox2.Text.ToUpper
            ds.Tables("admin").Rows.Add(dr1)
     
                    Dim dap As New SqlDataAdapter
            dap = New SqlDataAdapter(cmd)
            Dim cb As New SqlCommandBuilder
            cb = New SqlCommandBuilder(dap)
            'dap.Update(ds, "admin")
            dap.Fill(ds, "admin")
            dt = ds.Tables("admin")
    merci d'avance pour l'aide

  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
    Par défaut
    A vue de nez, je dirais que tu n'as pas initialisé cmd, qui vaut donc Nothing, donc tu ne peux pas accéder à cmd.Connection

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    si Mr,j'ai déja declarer la connexion ,la command et tout en module:

    Public cnx As SqlConnection = New SqlConnection("data source=.;integrated security=sspi;initial catalog=projet")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
       Public cmd As New SqlCommand
        Public dap As New SqlDataAdapter
        Public ds As New DataSet
        Public dt As DataTable
        Public dr As DataRow
        Public cb As New SqlCommandBuilder
        Public i As Integer
    mais je sais pas pourquoi,l'erreur reste toujours

  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
    Par défaut
    à quel endroit l'erreur se produit exactement ?

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    oui ,c'est içi------->datarow=dataset.tables("table").Newrow
    Merci pour la suivie

  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
    Par défaut
    OK
    Donc a priori c'est la table à laquelle tu essaies d'accéder qui n'existe pas encore dans le dataset
    Il faut que tu la crées, soit manuellement, soit via un Fill

  7. #7
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    Mais,jetez un coup d'oeil içi Mr,j'ai déja inseré la methode Fill pour remplir mon dataset
    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
    19
    20
    21
    22
    23
     
    Dim dr1 As DataRow
    dim ds as new dataset
    dim dt as datatable
    Dim cnx As SqlConnection = New SqlConnection("data source=.;integrated security=sspi;initial catalog=projet")
            cnx.Open()
     
            cmd.Connection = cnx
     
     
     
            dr1 = ds.Tables("admin").NewRow
            dr1(0) = TextBox1.Text.ToUpper
            dr1(1) = TextBox2.Text.ToUpper
            ds.Tables("admin").Rows.Add(dr1)
     
                    Dim dap As New SqlDataAdapter
            dap = New SqlDataAdapter(cmd)
            Dim cb As New SqlCommandBuilder
            cb = New SqlCommandBuilder(dap)
            'dap.Update(ds, "admin")
            dap.Fill(ds, "admin")     'Içi'
            dt = ds.Tables("admin")
    !!!

  8. #8
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    et pour la base et la table ils sont tous juste et existantes!

  9. #9
    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
    Par défaut
    Citation Envoyé par xzéna Voir le message
    Mais,jetez un coup d'oeil içi Mr,j'ai déja inseré la methode Fill pour remplir mon dataset
    Tu essaies d'accéder à la table "admin" avant d'avoir fait le Fill, donc à ce stade elle n'existe pas encore dans le dataset

  10. #10
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    Si,c'est pas juste mon code?quelel est sa correction
    et merci d'avance

  11. #11
    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
    Par défaut
    Citation Envoyé par xzéna Voir le message
    Si,c'est pas juste mon code?quelel est sa correction
    et merci d'avance
    Je te l'ai dit : il faut faire cette instruction :
    avant d'accéder à la table "admin" (l'instruction qui plante)

  12. #12
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    ok,un petit essaie ,et je vais vous tiens au courant
    merci

  13. #13
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    ça marche plus
    ce lien indique le code et l'erreur.
    VB.bmp - 2.25MB

  14. #14
    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
    Par défaut
    Visiblement, tu fais exactement la même chose qu'avant... si tu ne tiens pas compte de ce que je te dis, ça va être difficile de t'aider

    Citation Envoyé par xzéna Voir le message
    Tu devrais plutôt envoyer l'image en PNG ou JPG, ça prend moins de place...

  15. #15
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    enfete,j'essaie à vous comprendre!et pour le code,j'ai tenté ça ,et comme toujours le méme erreur ..et je sais pas si j'ai un probleme d'ordre içi aussi ou quoi??,s'il exsite corrigez le svp,car j'ai vraiment cassé mes dents en ce bloc làet merci infiniment

    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
    19
     drw = ds.Tables("tab").NewRow() 'creati0n d'une n0uvelle ligne vide dans le dataset
                drw("mat") = Me.TextBox1.Text 'affectation de ce champ appartir textb0x vers la datar0W {n0uvelle ligne}
                drw("nm") = Me.TextBox2.Text 'IDEM  NB :{et 0n peux fair aussi le numer0 de champ au lieu s0n n0m}
                drw("prenm") = Me.TextBox3.Text 'IDEM  NB :{et 0n peux fair aussi le numer0 de champ au lieu s0n n0m}
                ds.Tables("tab").Rows.Add(drw) 'l'aj0ut de la ligne créer dans le dataset
                'création et exécution du commandbuilder
                'pour mettre à jour le DataAdapter
                cb = New SqlCommandBuilder(dap)
                'mise à jour des données du DataAdapter
                'à partir du commandbuilder
     
                dap.Update(ds, "tab") 'faire une mise a j0ur
                ds.Clear() 'vider le dataset
                dap.Fill(ds, "tab") 'recharger le dataadapter
                dt = ds.Tables("tab") 'faire une c0pie de la datatable dans le dataset
                dg.DataSource = dt 'affecter ses d0nner dans datagrid
                TextBox1.Text = ""
                TextBox2.Text = ""
                TextBox3.Text = ""

  16. #16
    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
    Par défaut
    C'est pourtant simple, il suffit de mettre l'instruction dap.Fill(ds, "tab") AVANT d'essayer d'ajouter une ligne à la table

    Un dataset qui vient d'être créé ne contient au départ aucune table, tu ne peux donc pas accéder à une table ("tab", "admin" ou autre) avant qu'elle ne soit créée dans le dataset. Le fait de faire un Fill d'une table crée la table si elle n'existe pas

  17. #17
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2009
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2009
    Messages : 190
    Par défaut
    ça marche pas En tout cas merci Mr pour votre aide.
    je vais esseyer avec des requettes

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/06/2006, 07h32
  2. Réponses: 6
    Dernier message: 29/03/2006, 11h22
  3. Réponses: 9
    Dernier message: 01/12/2005, 16h19
  4. AJOUT d'un ENREGISTREMENT dans UNE TABLE
    Par ramo dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/08/2005, 16h24

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