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

C# Discussion :

Parcourir mannipuler table


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut Parcourir mannipuler table
    salam

    j'ai un gros problème avec la manipulation des données en c# par exemple comment ouvrir une table ou la fermer comment faire pour ce positionner sur le premier enregistrement de la table ou le derniers ou allez vers le suivant pour le moment j'ai réussie a faire de la modification et l'ajout grâce a la méthode insert et update j'utilise un dataset et j'ai des dataadapter je cherche des exemple simple pour commander ...

    puisque je suis delphiste je cherche des exemple du genre

    table.open;
    table.first;
    table.last;
    table.next;
    table .recodcount;


    voila merci d'avance.
    Delphi XE8 Architect - Win 10

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Bonjour;

    1- ton probleme n'est pas clair.
    2 -tu veux dire DataTable et non pas table?

    voila un exemple pour commencer

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    c'est un projet que j'ai réalisé en delphi et je veut le reproduire en Csharp

    je veut faire quelque chose de ce genre

    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
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      Debut, Fin: TDateTime;
      s: TDateTime;
      Delta: Integer;
    begin
      executiontache.Open;//la planification des tache (a remplir)
      tache_poste_detail.Open;//liste des taches par poste en détail
      Debut := Now;
      Fin := IncYear(Debut, 1);
      Delta := 0;
     
      tache_poste_detail.first;
     
      while not tache_poste_detail.Eof do
      begin
        if tache_poste_detail.FieldByName('Fréquance').AsString = 'Hebdomadaire' then
        begin
          s := IncDay(Debut, Delta);;
          while s < Fin  do
          begin
            executiontache.insert;
            //poster le nom de la machine
            executiontache.FieldByName('Nposte_tache').AsInteger := tache_poste_detail.FieldByName('Nposte_tache').AsInteger;
            //poster la date de planification de la tache
            executiontache.FieldByName('dateplan').AsDateTime := s;
            executiontache.post;
            s := IncWeek(s, 1);
            // ou
            // s := IncDay(s, 7);
          end;
          // Décalage de 1 jour pour la machine suivante
          // avec retour en début de semaine
          Delta := (Delta + 1) mod 7;
        end;
        tache_poste_detail.Next;
      end;
    end;
    voila je veut savoirs comment manipuler un datatable ou dataadapter pour le parcourir ou pour ce positionné sur le premier enregistrement de ma table ou le dernier comment allez ver le suivant pour réalisé des boucles et des testes(le code en gras )... j'ai trouver des pdf mais c'est tellement vaste que je me suis perdut ,ce que je cherche c'est des exemple basique et simple pour bien débuté.merci d'avance
    Delphi XE8 Architect - Win 10

  4. #4
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    si executiontache est un DateTable,tu peux le parcourir par une simple

    foreach (DataRow row in executiontache .Rows)
    {
    //row contient toutes tes données
    }

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    je suis la pour le moment
    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 boutonplan_Click(object sender, EventArgs e)
            {
                DateTime debut = dateEdit1.DateTime;
                DateTime fin = debut.AddYears(1);
                MessageBox.Show(Convert.ToString(fin));
     
                foreach (DataRow row in basedataset.tache_poste_detail.Rows)
                {
     
                } 
     
     
     
            }
    maintenant que faut il faire pour ce positionné sur le premier enregistrement (visuellement sur un datagridview et dans le code) et comment faire pour compter les rows j'ai essayé ça n'a pas marchez pour ensuit faire une boucle a chaque sortie je me déplace vers le prochaine enregistrement.
    Delphi XE8 Architect - Win 10

  6. #6
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Pour le count basedataset.posté_tâches_détail.rows.count
    Dans foreach ta pas besoin de te posititionner row c est row courant (pas besoin de count pour parcourir)

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    je commace a chopper le truc la j'en suis ici
    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
     
    private void boutonplan_Click(object sender, EventArgs e)
            {
                DateTime debut = dateEdit1.DateTime;
                DateTime fin = debut.AddYears(1);
                MessageBox.Show(Convert.ToString(fin));
                int delta = 0;
     
                foreach (DataRow row in basedataset.tache_poste_detail.Rows)
                {
                    if (row.Field<string>("Fréquance") == "Hebdomadaire")
                    {
                        DateTime s = debut.AddDays(delta);
                        while (s < fin)
                        {
                            DataRow row1 = basedataset.Execution_taches.NewRow();
                            row1["Nposte_tache"] = row.Field<int>("Nposte_tache");
                            row1["dateplan"] = s;
                            basedataset.Execution_taches.Rows.Add(row1);             
                        }
                        MessageBox.Show(Convert.ToString(row.Field<int>("Nposte_tache")));
                    }
                } 
     
     
     
            }
    je ne sais pas si c'est comme ça pour ajouté une ligne (d’après ce que j'ai lu ) mais bon mon programme plante
    Delphi XE8 Architect - Win 10

  8. #8
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    est ce que tu veux parcourir un Datatable ou bien remplir un datatable?

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    parcourir un pour ensuite remplir un autre
    Delphi XE8 Architect - Win 10

  10. #10
    Invité
    Invité(e)
    Par défaut
    Si je ne sais les deux DataTable ont le même structure. Si oui alors il y a déjà une méthode pour ça : DataTable.Copy.

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    non il n'ont pas la même structure je copie un champ de la première table ensuite sur un autre je met la date (s).
    Delphi XE8 Architect - Win 10

  12. #12
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    exemple

    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
     
     private void boutonplan_Click(object sender, EventArgs e)
            {
                DateTime debut = dateEdit1.DateTime;
                DateTime fin = debut.AddYears(1);
                MessageBox.Show(Convert.ToString(fin));
                int delta = 0;
                DataTable newtable = basedataset.Tables.Add("tache_poste_detail2");
                newtable.Columns.Add("Nposte_tache", typeof(int));
                newtable.Columns.Add("dateplan", typeof(DateTime));
     
     
                foreach (DataRow row in basedataset.tache_poste_detail.Rows)
                {
                    if (row.Field<string>("Fréquance") == "Hebdomadaire")
                    {
                        DateTime s = debut.AddDays(delta);
                        while (s < fin)
                        {
                            newtable.Rows.Add(row.Field<int>("Nposte_tache"),s);
     
                        }
                        MessageBox.Show(Convert.ToString(row.Field<int>("Nposte_tache")));
                    }
                }
     
            }
    voir msdn

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    d’après ce que j'ai compris de ton exemple et de lien que tu ma fournie c'est qu'on doit créer la table ensuite les colonnes et ensuite les ligne ... le truc c'est que moi j'ai la table ma base de données et créer déjà ensuite j'ai les colonnes aussi j'ai besoin juste d'ajouté des enregistrement a ma table .
    j'ai rectifier le code :
    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
          private void boutonplan_Click(object sender, EventArgs e)
            {
                DateTime debut = dateEdit1.DateTime;
                DateTime fin = debut.AddYears(1);
                int delta = 0;
                foreach (DataRow row in basedataset.tache_poste_detail.Rows)
                {
                    if (row.Field<string>("Fréquance") == "Hebdomadaire")
                    {
                        DateTime s = debut.AddDays(delta);
                        MessageBox.Show(Convert.ToString(s));
                        while (s < fin)
                        {
                            basedataset.Execution_taches.Rows.Add(row.Field<int>("Nposte_tache"), s);
                            s=s.AddDays(7);
                        }
                        MessageBox.Show(Convert.ToString(row.Field<int>("Nposte_tache"))+"   ett   "+Convert.ToString(s));
                        delta++;
                    }
                }
     
            }
    mais ça marche pas quant j'ouvre access et :j'ouvre ma table execution tache je la trouve vide .voila merci encore.
    Delphi XE8 Architect - Win 10

  14. #14
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    d’après ce que j'ai compris de ton exemple et de lien que tu ma fournie c'est qu'on doit créer la table ensuite les colonnes et ensuite les ligne ... le truc c'est que moi j'ai la table ma base de données et créer déjà ensuite j'ai les colonnes aussi j'ai besoin juste d'ajouté des enregistrement a ma table .
    j'ai rectifier le code :
    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
          private void boutonplan_Click(object sender, EventArgs e)
            {
                DateTime debut = dateEdit1.DateTime;
                DateTime fin = debut.AddYears(1);
                int delta = 0;
                foreach (DataRow row in basedataset.tache_poste_detail.Rows)
                {
                    if (row.Field<string>("Fréquance") == "Hebdomadaire")
                    {
                        DateTime s = debut.AddDays(delta);
                        MessageBox.Show(Convert.ToString(s));
                        while (s < fin)
                        {
                            basedataset.Execution_taches.Rows.Add(row.Field<int>("Nposte_tache"), s);
                            s=s.AddDays(7);
                        }
                        MessageBox.Show(Convert.ToString(row.Field<int>("Nposte_tache"))+"   ett   "+Convert.ToString(s));
                        delta++;
                    }
                }
     
            }
    mais ça marche pas quant j'ouvre access et :j'ouvre ma table execution tache je la trouve vide .voila merci encore.
    il faut utiliser un dataAdapter pour update dataset (update base de données )
    voila un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SqlDataAdapter oSqlDataAdapter = new SqlDataAdapter("select * from tache_poste_detail", oConnection);
     
    DataSet oDataSet = new DataSet("tache_poste_detail");
     
    oSqlDataAdapter.Fill(oDataSet,"Customers");
    lien vers un tutoriel

  15. #15
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    finalement j'ai réussie a remplir ma table grâce a un tableadapter que j'ai créer en reliant un datagrid a ma table et que j'ai nommé exection_tache en utilisant la méthode insert.
    voila le code
    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
     
    private void boutonplan_Click(object sender, EventArgs e)
            {
                DateTime debut = dateEdit1.DateTime;
                DateTime fin = debut.AddYears(1);
                int delta = 0;
                foreach (DataRow row in basedataset.tache_poste_detail.Rows)
                {
                    if (row.Field<string>("Fréquance") == "Hebdomadaire")
                    {
                        DateTime s = debut.AddDays(delta);
                        MessageBox.Show(Convert.ToString(s));
                        while (s < fin)
                        {
                            execution_taches.Insert(row.Field<int>("Nposte_tache"),"",s,s,"",0,false);
                            s=s.AddDays(7);
                        }
                        MessageBox.Show(Convert.ToString(row.Field<int>("Nposte_tache"))+"   ett   "+Convert.ToString(s));
                        delta++;
                    }
                }
     
            }

    maintenant je sais comment parcourir une table c'est par le datatable et la boucle foreach ensuit la remplir avec un tableadapter et la méthode insert ... avant de mètre résolut j’aimerai bien savoir comment faire pour sauter des argument avec la méthode insert ou laissé les champs vides
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execution_taches.Insert(row.Field<int>("Nposte_tache"),"",s,ne pas remplir ce champ,"",sauter cette argument,false);
    Delphi XE8 Architect - Win 10

  16. #16
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execution_taches.Insert(row.Field<int>("Nposte_tache"),"",s,ne pas remplir ce champ,"",sauter cette argument,false);
    ne pas remplir ce champ=> ça veux dire donner une valeur par Default (ou bien une valeur null ) suite que la valeur entré est vide ?

  17. #17
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    oui exactement...
    Delphi XE8 Architect - Win 10

  18. #18
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    alors tu peux passer des valeurs null
    exemple pour string tu peux passer :


  19. #19
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Points : 77
    Points
    77
    Par défaut
    ouiiii ça marche et pour les date et les int .... ??? ou sinon comment laissé la valeur par défaut ??
    Delphi XE8 Architect - Win 10

  20. #20
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int? I=null;
     
    DateTime? Date= null;
    Tu peux utiliser ces deux variable pour insérer des valeurs null.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/05/2007, 14h26
  2. [DAO]Parcourir une table Access en VB / Pb niveau débutant
    Par EtienneG dans le forum VBA Access
    Réponses: 10
    Dernier message: 25/04/2007, 05h35
  3. Parcourir une table
    Par fgrandjean dans le forum Administration
    Réponses: 1
    Dernier message: 04/10/2006, 12h41
  4. [SQL Server] parcourir une Table avec un FOR
    Par papouAlain dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2006, 11h49
  5. Réponses: 6
    Dernier message: 28/12/2004, 16h09

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