[Débutant] Modification d'un datagridview et répercution dans la base de données

Signaler
Messages postés
14
Date d'inscription
dimanche 14 octobre 2007
Statut
Membre
Dernière intervention
14 avril 2008
-
Messages postés
14
Date d'inscription
dimanche 14 octobre 2007
Statut
Membre
Dernière intervention
14 avril 2008
-
Bonjour,

J'ai une base de donnée Access contenant une table T_RESSOURCE.
J'affiche cette table dans un datagridview dgvRessource mais lorsque je change les valeurs des cellules ces modifictions ne sont pas répercutées sur ma base de données ...

Quelqu'un pour un petit coup de main ??
Merci d' avance. Voici mon code :

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;


namespace ExerciceDataGridView
{
public partial class F_RESSOURCE : Form
{
string sURLDB = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Environment.CurrentDirectory + @"\Ressource.mdb";
string sSQL;
BindingSource oBS = new BindingSource();
OleDbDataAdapter oDA = new OleDbDataAdapter();
DataTable oDT = new DataTable();

public F_RESSOURCE()
{
InitializeComponent();
}

private void F_RESSOURCE_Load(object sender, EventArgs e)
{
this.dgvRessource.DataSource = this.oBS;
GetData();
}

private void GetData()
{
sSQL = "Select * FROM T_RESSOURCE";
oDA = new OleDbDataAdapter(sSQL, sURLDB);
OleDbCommandBuilder oCB = new OleDbCommandBuilder(oDA);
DataTable oDT = new DataTable();
oDA.Fill(oDT);
oBS.DataSource = oDT;
}

private void dgvRessource_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
this.oDA.Update((DataTable)this.oBS.DataSource);
}
}
}

6 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
tu regardes dans quel répertoire ?

à l'exécution VS copie le .mdb dans le répertoire \bin\debug...

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
14
Date d'inscription
dimanche 14 octobre 2007
Statut
Membre
Dernière intervention
14 avril 2008

Merci tout d'abord de t'intéresser à mon problème.

Je regarde effectivement dans le bon rep \bin\debug\Ressource.mdb.

De plus lorsque je modifie le datagridview de ma form,que je la ferme et la re-ouvre les modifications n'ont pas été prises en compte.

Je ne comprend pas ce qui cloche ...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
que tu réouvres... tu relances l'application ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
14
Date d'inscription
dimanche 14 octobre 2007
Statut
Membre
Dernière intervention
14 avril 2008

Oui lorsque j'ouvre l'application (ie la form avec le datagrid),que je modifie des valeurs dans le datagridview,que je referme l'application et la relance le datagridview posséde toujours les données initiales donc sans prise en compte des modifications. Ce qui prouve bien que ma table T_RESSOURCE dans la db n'est pas modifiée... (malheureusement).

Quoiqu'il en soit meme en regardant directement dans la table il n'y pas de modif.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
non non... à chaque fois que tu fais F5, VS recopie le mdb du projet dans le répertoire bin/debug.
moi aussi je me suis fait avoir au début :)

il faut regarder les propriétés du fichier dans le propertygrid et demander qu'il soit copié uniquement s'il est plus récent.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
14
Date d'inscription
dimanche 14 octobre 2007
Statut
Membre
Dernière intervention
14 avril 2008

Oui mais je n'ai pas ajouté ma source de données avec Visual Studio.
Je l'ai copié "manuellement" dans le rep \debug. Elle n'est donc pas modifiée à chaque débuggage (F5).
(La date de modification du fichier Ressource.mdb reste toujours la meme)
donc apparemment le problème n'est pas la (dommage cela dit).