Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème PROG C# SQL BDD ACCESS

programme pour comparer et modifier une table en utilisant une autre

    20 juillet 2016 à 11:23:58

    bonjour,

    donc j'essaie de créer un prog qui utilise une bdd Appelé Basedd composé de 2 tables la première DENR(la principale a afficher a la fin) et et la deuxième GRET(la secondaire).

    l'objectif c'est de comparer les élément de  la table GRET avec celles de la table DENR .si l’élément (commentaire dans GRET=defaut dans DENR) est présent dans la Table DENR,on modifie a valeur de la quantité dans la table DENR en incrémentant de 1.Si il n'est pas présent on le rajoute dans la table DENR avec une quantité égale a GRET_Q(toujours a 1 pour l'instant) .cette comparaison est lancé apres avoir cliqué sur le boutton (Mise à jour)

    puis automatiquement après on efface la table GRET qui sera chaque jour manuellement modifié sur access par un opérateur.

    Pour l'instant le problème est le suivant:

    Je pense comprendre que cela est a cause de l'impossibilité de modifié un affichage mais il faut modifier la base de donnée elle même (c'est a dire la datasource) sauf que j'ai jamais codé sur du C# ou SQL (niveau très débutant).et la seule solution que je vois c'est celle que j'ai appliqué jusqu’à présent.et je ne comprend rien sur les exemples dans d'autres sujets vue que c'est pas la même fonction.

    PS :A savoir que j'ai connecté la BDD( dataset) par le générateur vue que je connais pas trop le code .

    MERCI A vous !!!

    Le code :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication5
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                /* checking if items in the GRET are available on the DENR table */
                try
                {
                    DataTable src1 = dataGridView1.DataSource as DataTable; /* DENR table */
                    DataTable src2 = dataGridView2.DataSource as DataTable; /* Gret Table */
                    int index1 = 0;
                    if (dataGridView1 == null)
                    {
                        MessageBox.Show("No rows in dataGrid");
                    }
                    foreach (DataGridViewRow d_row1 in dataGridView1.Rows)
                    {
                        DataRow row1 = (d_row1.DataBoundItem as DataRowView).Row;
                        foreach (DataGridViewRow d_row2 in dataGridView2.Rows)
                        {
                            DataRow row2 = (d_row2.DataBoundItem as DataRowView).Row;
                            int index2 = 0;
                            bool duplicateRow = true;
                            for (int cellIndex = 0; cellIndex < row1.ItemArray.Count(); cellIndex++)
                            {
                                /* checking if columns matchs , if so then duplicateRow is  true , else duplicateRow is false */
                                if (!row1.ItemArray[cellIndex].ToString().Equals(row2.ItemArray[cellIndex].ToString()))
                                {
                                    duplicateRow = false;
                                    break;
                                }
                            }
                            /* match found */
                            if (duplicateRow)
                            {
                                /* coloring results */
                                dataGridView1.Rows[index1].DefaultCellStyle.BackColor = Color.Green;
                                dataGridView2.Rows[index2].DefaultCellStyle.BackColor = Color.Green;
                                /* increment the QE */
                                dataGridView1.Rows[index1].Cells[2].Value = Int32.Parse(dataGridView1.Rows[index1].Cells[2].Value.ToString()) + 1;
                            }
                            else
                            {
                                /* adding the GRET item to DENR */
                                DataGridViewRow tmp_row = (DataGridViewRow)dataGridView2.Rows[index2].Clone();
                                /* edit QTE , affecting it to 1 */
                                tmp_row.Cells[2].Value = 1;
                                dataGridView1.Rows.Add(tmp_row);
    
                            }
                            index2++;
                        }
                        index1++;
                    }
                    /* cleaning the GRET table */
                    dataGridView2.Rows.Clear();
                    dataGridView2.Refresh();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                try
                {
                    // TODO: cette ligne de code charge les données dans la table 'baseDDDataSet.GRET'. Vous pouvez la déplacer ou la supprimer selon les besoins.
                    this.gRETTableAdapter.Fill(this.baseDDDataSet.GRET);
                    // TODO: cette ligne de code charge les données dans la table 'baseDDDataSet.DENR'. Vous pouvez la déplacer ou la supprimer selon les besoins.
                    this.dENRTableAdapter.Fill(this.baseDDDataSet.DENR);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
    }
    



    -
    Edité par MarouaneBelhaj 20 juillet 2016 à 11:31:21

    • Partager sur Facebook
    • Partager sur Twitter
      24 juillet 2016 à 8:29:13

      Bonjour #MarouaneBelhaj,

      Le problème ici c'est que tu utilises la référence du DataSource de ton DataGridView. Quand cette propriété est utilisée pour mapper les données tu ne peux pas explicitement ajouter des enregistrements directement avec le DataGridView. Pour réaliser cela tu dois ajouter ton enregistrement directement dans ta source de données.

      Sources

      • Partager sur Facebook
      • Partager sur Twitter
      Knowledge speaks, but wisdom listens. J.Hendrix

      Problème PROG C# SQL BDD ACCESS

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown