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

hezar Messages postés 14 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 14 avril 2008 - 10 avril 2008 à 10:06
hezar Messages postés 14 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 14 avril 2008 - 10 avril 2008 à 11:18
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

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
10 avril 2008 à 10: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]
0
hezar Messages postés 14 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 14 avril 2008
10 avril 2008 à 10:44
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 ...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
10 avril 2008 à 10:55
que tu réouvres... tu relances l'application ?

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
hezar Messages postés 14 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 14 avril 2008
10 avril 2008 à 11:03
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 36
10 avril 2008 à 11:09
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]
0
hezar Messages postés 14 Date d'inscription dimanche 14 octobre 2007 Statut Membre Dernière intervention 14 avril 2008
10 avril 2008 à 11:18
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).
0
Rejoignez-nous