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());
}
}
}