Plausibilitätsprüfungen beim DataGridView vor dem Speichern

25/02/2010 - 16:55 von Christoph Rall | Report spam
Hallo ihr,

ich habe habe eigentlich ein simples Problem (meinte ich zumindest
zuerst), komm aber bislang nicht auf die Lösung:
Ich will ein DataGridView (das an ein DataSet gebunden ist (es geht um
eine Adresse, die aktiviert werden soll)) in der Spalte Aktiv direkt
abfragen (also nicht den DataSet Inhalt, das wàre kein Problem), weil
ich eine einfache Plausi vor dem Speichern einbauen will zur
Kontrolle, dass der Benutzer hier nur 1 Hàkchen setzen können soll (es
soll immer nur eine Adresse aktiv gesetzt werden können).

Habe es so versucht:

int j = 0;
for (int i = 0; i < dGVAdresse.Rows.Count; i++)
{
if (dGVAdresse.Rows[i].Cells["Aktiv"].Value != null)
{
if ((bool)dGVAdresse.Rows[i].Cells["Aktiv"].Value == true)
{
j++; // Zàhlen, wie oft Aktiv Checkbox gesetzt wurde
}
}
}
if (j > 1)
{
MessageBox.Show("Es ist nur ein Aktiv Hàkchen erlaubt! Sie haben
aber " + j + " Hàkchen gesetzt! Person wurde nicht gespeichert!",
"Fehler", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
else
{
// Speichern des Datasets in die SQL Datenbank (das DataGridView
ist über Binding Objekte an die BindingSource angebunden, diese dann
an das DataSet) in der Art: DataAdapter.Update(DataSet,
"Tabellenname");
}


=> Komisch, er fragt aber anscheinend die im DataSet gespeicherten
(True/False) Werte ab und nicht die im Grid gesetzten. Wenn ich also
hier zwei Hàckchen rausnehme und speichern will, bringt er einen
Fehler, obwohl ja dann alles ok sein müsste, da es der Benutzer ja
eben korrigiert hat.

Wie kann ich grundsàtzlich vor dem Speichern den aktuellen
ungespeicherten Zustand des DataGridView überprüfen?
Was mache ich falsch?

Mit freundlichem Gruß,
Christoph Rall
 

Lesen sie die antworten

#1 Frank Dzaebel
25/02/2010 - 20:07 | Warnen spam
Hallo Christoph,

Ich will ein DataGridView (das an ein DataSet gebunden ist (
es geht um eine Adresse, die aktiviert werden soll)) in der
Spalte Aktiv direkt abfragen (also nicht den DataSet Inhalt ...



Funktioniert bei mir mit Deinem Quellcode.
Aber in manchen Fàllen ist es auch der "EditedFormattedValue"
anstatt der "Value".


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen