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 :

Dataset DataAdapter et DataTable


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut Dataset DataAdapter et DataTable
    Bonjour,

    J'ai créer un Dataset nommé m_ConsultSearchData
    J'ai un DataAdapter : m_daDataAdapter qui fait 2 requêtes.

    Et je fais un TableMappings.Add pour renommer mes DatatTables.
    RefEtCodeClt et NomClt

    Je me suis servi de ce tuto : ICI

    Le problème c'est que plus tard quand je veux aller chercher des choses dans mes datatables, il ne les reconnait pas

    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
    
            SqlConnection m_cnADONetConnection = new SqlConnection();
            SqlDataAdapter m_daDataAdapter;
            SqlCommandBuilder m_cbCommandBuilder;
            DataTable RefEtCodeClt = new DataTable();
            DataTable NomClt = new DataTable();
            int m_rowPosition = 0;
    
    
            public F_ConsultSearch()
            {
                InitializeComponent();
            }
    
            private void F_ConsultSearch_Load(object sender, EventArgs e)
            {
               
    
                m_cnADONetConnection.ConnectionString =
                @"Server=***;Database=***;User ID=***;Password=***;Trusted_Connection=False";
                m_cnADONetConnection.Open();
                m_daDataAdapter = new SqlDataAdapter("SELECT AKKNDI,AKARTK, AKARTN  FROM ARKF;" + "SELECT KNKNM FROM KNDF;", m_cnADONetConnection);
                SqlCommandBuilder m_cbCommandBuilder = new SqlCommandBuilder(m_daDataAdapter);
                DataSetConsultSearch m_ConsultSearchData = new DataSetConsultSearch();
                m_daDataAdapter.Fill(m_ConsultSearchData);
                m_daDataAdapter.TableMappings.Add("Table", "RefEtCodeClt");
                m_daDataAdapter.TableMappings.Add("Table1", "NomClt"); 
    
            }
    
    (...)
    //--------------------------------------------------------
    //L'erreur est dans la ligne d'après et la suivante
    //---------------------------------------------------------
    
    for (int i = 0; i < m_daDataAdapter.RefEtCodeClt.Rows.Count; i++)
                    {
                        if (m_daDataAdapter.RefEtCodeClt[i].AKARTN.ToString() == Txt_RefInt.Text)
                        {
                            MessageBox.Show("Dans la boucle if");
                            NbreDeClients ++;
                            i++;
                        }
                    }
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Vérifie que les tables créent par défaut portent bien les noms Table et Table1.

    Ton code devrait normalement fonctionner...
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    Ouai ta raison.
    Lorsque je met le nom Table il ne le connait pas non plus.
    Je ne sais pas comment connaitre le nom de mes DataTable.

  4. #4
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Je crois que j'ai zappé un truc... Le DataAdapter te sert à remplir le DataSet, tes tables sont accessibles depuis le DataSet, et non depuis le DataAdapter.
    (ça m'apprendra à survoler le code )
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre éclairé Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Par défaut
    Je ne sais pas pourquoi j'ai fais ça. lol Merci pour ta réponse.

    Mais il doit y avoir une autre erreur, car il ne reconnais pas mes noms de datatable. Même si je les appelle Table c'est pareil. Il y a donc un souci avec les noms des Datatable.

    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
    
    public partial class F_ConsultSearch : Form
        {
            SqlConnection m_cnADONetConnection = new SqlConnection();
            SqlDataAdapter m_daDataAdapter;
            DataSetConsultSearch m_ConsultSearchData = new DataSetConsultSearch();
            SqlCommandBuilder m_cbCommandBuilder;
    
            public F_ConsultSearch()
            {
                InitializeComponent();
            }
    
            private void F_ConsultSearch_Load(object sender, EventArgs e)
            {
    
    
                m_cnADONetConnection.ConnectionString =
                @"Server=***;Database=***;User ID=***;Password=***;Trusted_Connection=False";
                m_cnADONetConnection.Open();
                m_daDataAdapter = new SqlDataAdapter("SELECT AKKNDI,AKARTK, AKARTN  FROM ARKF;" + "SELECT KNKNDI, KNKNMN FROM KNDF;" + "SELECT ITNBR, ITDSC FROM ITEMASA;" , m_cnADONetConnection);
                SqlCommandBuilder m_cbCommandBuilder = new SqlCommandBuilder(m_daDataAdapter);
                m_daDataAdapter.Fill(m_ConsultSearchData);
                m_daDataAdapter.TableMappings.Add("Table", "RefEtCodeClt");
                m_daDataAdapter.TableMappings.Add("Table1", "NomClt");
                m_daDataAdapter.TableMappings.Add("Table2", "RefEtNomPiece");
    
                //Init Les Liste
                Lst_Ref.Items.Clear();
                Lst_Clt.Items.Clear();
                Lst_Frs.Items.Clear();
    
            }
    
    
    
            private void Txt_RefInt_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == (char)Keys.Return)
                {
                    //Maj des Listes
                    bool RetFillClient; bool RetFillFrs;
                    string StrClientEnCOurs; string StrFrsEnCours;
                    int NbreDePieces; NbreDePieces = 0;
    
                    //--> Vide les liste
                    Lst_Ref.Items.Clear();
                    Lst_Clt.Items.Clear();
                    Lst_Frs.Items.Clear();
    
                    //On regarde si la pièce existe, si oui on prend son nom et on le met dans la liste des ref
                    for (int i = 0; i < m_ConsultSearchData.RefEtNomPiece.Rows.Count; i++)
                    {
                        if (m_ConsultSearchData.RefEtNomPiece[i].ITNBR.ToString() == Txt_RefInt.Text)
                        {
                            NbreDePieces++;
                            ListViewItem objListItem;
                            objListItem = new ListViewItem(Txt_RefInt.Text);
                            objListItem.ImageIndex = 0;
                            objListItem.SubItems.Add(m_ConsultSearchData.RefEtNomPiece[i].ITDSC.ToString());
                            Lst_Ref.Items.Add(objListItem);
                        }
                    }
    (...)
    Laedit, tu remarquera que j'ajoute tes réponses pour une autre de mes questions!

  6. #6
    Membre Expert
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Par défaut
    Ton DataSet est typé, donc il devrait déjà connaître les tables lors de sa conception. Quand tu regarde ton fichier dataset, quels sont les noms des tables ?

    Une autre façon de le savoir est de regarder les tables présentes dans la propriétés Tables de ton DataSet, tu peux faire un foreach et regarder les noms des tables.

    Si tu n'y as toujours pas accès directement, tu pourras toujours passer par cette propriété via un index ou un nom.

    Alors pour les ListViewItem ça a fini par marcher ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

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

Discussions similaires

  1. DataAdapter et DataTable
    Par cyril dans le forum ASP.NET
    Réponses: 3
    Dernier message: 10/02/2009, 09h47
  2. DataSet -> Regrouper des DataTable
    Par mrwps dans le forum ASP.NET
    Réponses: 6
    Dernier message: 30/05/2008, 14h06
  3. [DataSet] Pourquoi la DataTable est en lecture seule?
    Par SirKus dans le forum Accès aux données
    Réponses: 2
    Dernier message: 16/07/2007, 10h49
  4. [VB.Net] Lier un DataSet à un DataTable
    Par dyree dans le forum ASP.NET
    Réponses: 13
    Dernier message: 26/06/2006, 10h37
  5. Réponses: 8
    Dernier message: 01/12/2005, 11h40

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