J'ai vue DataGrid qui affiche les données de table à partir d'une base de donnéesC# DataGrid écrire automatiquement des valeurs à DB
Environnement: - C# 4.0 - SQL Server 2005 - Visual Studio 2010
Ce que je veux est : Sur une rangée à la rangée automatiquement enregistrer les modifications. Donc, quand je modifie la première rangée, puis quittez la rangée. Il devrait enregistrer les modifications dans la base de données.
Je l'ai utilisé ce code:
Dans la de1 Charge:
dataSet1.TblObject.RowChanged += rowUpdate;
Le eventhandler:
private void rowUpdate(object sender, DataRowChangeEventArgs e)
{
DataRow dr = e.Row;
if (dr.RowState == DataRowState.Modified)
{
tblObjectTableAdapter.Update(dr);
}
}
Quand j'ai édité une ligne de la grille, est tblObjectTableAdapter.Update(dr);
appelé les données sont stockées dans la table. Ce qui est bon. Mais l'événement continue de se déclencher comme s'il était appelé de manière récursive. Ainsi, le tblObjectTableAdapter.Update(dr);
provoque un événement dataSet1.TblObject.RowChanged
. Mais je ne peux pas faire la différence entre les deux. Je devine que j'utilise le mauvais événement pour stocker mes valeurs mais je ne peux trouver aucun événement qui me semble logique. Qu'est-ce que je fais mal?
J'ai fait un xsd ensemble de données:
J'ai choisi l'ensemble de données comme source de données dans ce gridview:
Laissez-moi votre question directement, l'événement se déclenche sans vous changer une ligne? Pouvez-vous élaborer sur le problème lui-même? – Emerion
L'événement continue de se déclencher. Mais seulement je édite une ligne dans le formulaire. Ce qui est ce que je veux, mais je ne veux pas que cela se produise quand j'appelle 'tblObjectTableAdapter.Update (dr);' –