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 :

Ajout de données


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 128
    Points : 64
    Points
    64
    Par défaut Ajout de données
    Bonjour

    je suis en train de créer une application en C# utilisant une base de données Access.

    Or quand je clique sur le bouton "ajouter", j'ai l'erreur suivante:
    An unhandled exception of type 'System.ArgumentException' occurred in System.Data.dll
    Additional information: La colonne 'Numéro PI' n'appartient pas à la table .

    Or j'ai bien vérifier, il y'a bien cette colonne dans la base de données... .

    Je vous laisse le code de la fenêtre concerner:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.OleDb;
    using System.Data.Common;
     
     
     
    namespace WindowsFormsApplication2
    {
        public partial class Modification : Form
         {  
     
            OleDbConnection ADONetConnection = new OleDbConnection();
            OleDbDataAdapter DataAdapter;
            DataTable Switchs = new DataTable();
            int rowPosition = 0;
     
            public Modification()
            {
                InitializeComponent();
            }
     
            private void Modification_Load(object sender, EventArgs e)
            {
                // TODO : cette ligne de code charge les données dans la table 'switchscruasDataSet.Switchs'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
                this.switchsTableAdapter.Fill(this.switchscruasDataSet.Switchs);
            }
     
            private void Supprimer_Click(object sender, EventArgs e)
            {
                // Supression de la ligne courante.
                if (Switchs.Rows.Count != 0)
                {
                    Switchs.Rows[rowPosition].Delete();
                    DataAdapter.Update(Switchs);
                    rowPosition = 0;
                    this.ShowCurrentRecord();
                }
     
            }
     
            private void ShowCurrentRecord()
            {
     
            }
     
            private void Changement_Click(object sender, EventArgs e)
            {
     
            }
     
            private void Ajout_Click(object sender, EventArgs e)
            {
                DataRow drNewRow = Switchs.NewRow();
     
                drNewRow["Numéro PI"] = "";
                drNewRow["Adresse MAC"] = "";
                drNewRow["Switch"] = "";
                drNewRow["Lieu"] = "";
     
                Switchs.Rows.Add(drNewRow);
                DataAdapter.Update(Switchs);
                rowPosition = Switchs.Rows.Count +1;
                this.ShowCurrentRecord();
     
            }
     
            private void Quitter_Click(object sender, EventArgs e)
            {
                Application.Exit();
            }
     
        }
    }
    J'ai déjà essayer sans les espaces ( au niveau du code et du fichier Access)

    Merci de votre 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 : 42
    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 749
    Points
    39 749
    Par défaut
    Tu as créé un objet DataTable, mais tu ne lui a pas ajouté de colonnes... et le programme ne peut pas deviner à quelle table de la base correspond cette DataTable.
    Apparemment tu utilises un DataSet typé (généré par le designer), tu devrais donc utiliser les tables définies dans ce DataSet...

    Remplacer Switchs par this.switchscruasDataSet.Switchs devrait régler le problème

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 128
    Points : 64
    Points
    64
    Par défaut
    Petite précision Tomlev:

    Je remplace tout les "Switchs" par "this.switchscruasDataSet.Switchs" ?

    Merci

  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 : 42
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par juninho Voir le message
    Petite précision Tomlev:

    Je remplace tout les "Switchs" par "this.switchscruasDataSet.Switchs" ?

    Merci
    oui
    Et a priori tu peux supprimer les déclarations de ADONetConnection, DataAdapter, et Switchs

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 128
    Points : 64
    Points
    64
    Par défaut
    Merci Tomlev.

    J'ai essayer, mais j'hésite à supprimer aussi la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataAdapter.Update(this.switchscruasDataSet.Switchs);
    Mais cette ligne, est souligner en bleu

    Si je la supprime, il n'y a plus de commande "UPDATE".

    Voici le code pour ce bouton "Ajout"
    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
     private void Ajout_Click(object sender, EventArgs e)
            {
                DataRow drNewRow = this.switchscruasDataSet.Switchs.NewRow();
     
                drNewRow["Numéro PI"] = "";
                drNewRow["Adresse MAC"] = "";
                drNewRow["Switch"] = "";
                drNewRow["Lieu"] = "";
     
                this.switchscruasDataSet.Switchs.Rows.Add(drNewRow);
                DataAdapter.Update(this.switchscruasDataSet.Switchs);
                rowPosition = this.switchscruasDataSet.Switchs.Rows.Count + 1;
                this.ShowCurrentRecord();
     
            }


    Sinon après avoir supprimer les déclarations de ADONetConnection, DataAdapter, et Switchs, voici ce qui me reste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    namespace WindowsFormsApplication2
    {
        public partial class Modification : Form
        {
     
            int rowPosition = 0;
     
            public Modification()
            {
                InitializeComponent();
            }

    Encore merci d'aider un débutant en difficulter

  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 : 42
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par juninho Voir le message
    J'ai essayer, mais j'hésite à supprimer aussi la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataAdapter.Update(this.switchscruasDataSet.Switchs);
    Tu as déjà un DataAdapter qui a été déclaré par le designer. Modifie la ligne comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.switchsTableAdapter.Update(this.switchscruasDataSet.Switchs);

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 128
    Points : 64
    Points
    64
    Par défaut
    Merci ça marche mieux, mais là, j'ai une nouvelle erreur, pour le champ concerné n'est pas vide


    Sinon pour supprimer des données, c'est la même chose mais en remplaçant update par delete ?

    Idem pour la modification des données existantes ?

    car j'ai 3 boutons:

    Ajouter
    , Modifier et Supprimer

    Merci
    Images attachées Images attachées  

  8. #8
    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 : 42
    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 749
    Points
    39 749
    Par défaut
    Citation Envoyé par juninho Voir le message
    Merci ça marche mieux, mais là, j'ai une nouvelle erreur, pour le champ concerné n'est pas vide
    Ben ça me semble assez clair... le champ "Numéro PI" est la clé primaire (je suppose), donc il ne peut pas être vide. Or tu mets dedans une chaine vide...


    Citation Envoyé par juninho Voir le message
    Sinon pour supprimer des données, c'est la même chose mais en remplaçant update par delete ?
    Non, c'est aussi la méthode Update

    Citation Envoyé par juninho Voir le message
    Idem pour la modification des données existantes ?
    Oui

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 128
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ben ça me semble assez clair... le champ "Numéro PI" est la clé primaire (je suppose), donc il ne peut pas être vide. Or tu mets dedans une chaine vide...
    Oui
    Non la clé primaire s'auto incrémente et c'est la colonne "N°".

    Lors de l'ajout, je fait un test avec un "PI1111111", ce qui n'est pas une chaine vide

    c'est pour cela que je suis surpris par l'erreur

    Sinon pour la suppression des données, heureusement que tu est là pour me dire que c'est aussi Update, j'aurai parier sur Delete puis que je supprime des enregistrements.

    Donc pour résumer:

    Même code pour les 3 boutons.


    Merci en tout cas

Discussions similaires

  1. ajout de données à partir d'un fichier texte
    Par drakenzara dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 14/04/2006, 13h39
  2. requete d'ajout de données
    Par Australia dans le forum Access
    Réponses: 10
    Dernier message: 10/01/2006, 20h32
  3. Réponses: 22
    Dernier message: 07/12/2005, 14h51
  4. ajouter des données dans une requête htttp en js
    Par jeromejanson dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/10/2005, 16h34
  5. souci sur ajout de données de zone de liste
    Par Tierisa dans le forum IHM
    Réponses: 6
    Dernier message: 27/09/2005, 09h30

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