ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
696
696
EMPFEHLEN
-
Guten Tag
Zur Zeit stehe ich mächtig auf dem Schlauch bei einer Abfrage.
Grundsätzlich geht es um eine DataTable, welche in einem DataGridView angezeigt wird.
In dieser Tabelle hat es unter anderem 2 Felder vom Typ Boolean (Auf dem SQL-Server -> Bit).
Diese beiden Felder werden auch im DataGridView dargestellt und zwar mittels DataGridViewCheckBoxColumn.
Wenn ich nun im Grid eine neue Zeile hinzufüge, dann werde alle Werte der Zeile initalisiert. Sprich ich schriebe in die DataTable meine Defaultwerte rein. Bei den beiden Booleans ist das 2 mal "False".
Die Anzeige am Bildschirm ist korrekt. So, nun klicke ich eine CheckBox an, damit diese den Hacken aktiv hat. Danach verlasse ich noch sicherheitshalber das Grid, sprich der Focus liegt irgendwo in einer TextBox.
So, nun möchte ich diese Zeile abspeichern.
In meiner Save-Routine steht dann folgender Code:
//DataTable oPCBalances
//Es befindet sich zu dem Zeitpunkt nur ein Record in der Tabelle!
if (oPCBalances.GetChanges() != null)
{
DataTable oChanges = oPCBalances.GetChanges();
....
mach irgendwas damit
....
}
http://img196.imageshack.us/i/bild5d.jpg/
Wenn ich den RowState von oPCBalances abrufe, dann steht dieser auf "Modified", was auch korrekt ist.
Die beiden Boolean-Felder sehen dann so aus:
feld_plus feld_minus
True False
http://img196.imageshack.us/i/bild4h.jpg/
Bis dahin ist alles normal. Wenn ich nun aber die DataTable oChanges anschaue,
steht darin dass der RowState = "Added" ist, und beide Boolean haben den Wert False. Also genau den Zustand als er in die DataTable eingefügt worden ist.
Ich habe diese Prinzip der Datenänderungen an sehr vielen Orten schon gebraucht und hatte nirgends Probleme. Aber hier mit diesen beiden Booleans scheint etwas nicht ganz zu stimmen.
Hat jemand eine Idee wieso die GetChanges() andere Werte zurückgibt als in der dazugehörigen Tabelle drin steht?
Es wurde weder ein andere Record hinzugefügt, noch gelöscht. Es wird einzig und aleine EIN Record hinzugefügt in die Tabelle und danach mittels Checkbox den Wert auf True gesetzt.
Bin echt grad etwas mit vielen Fragezeichen umhüllt -.-
Hat jemand ne Idee?
Wäre Toll!
Liebe Grüsse
Dani
P.S.
Habe den Teil mit dem Grid und der Steuerung mal in eine kleinere App reingebaut und dort geht alles wunderbar. Aber weder die Grid-Steuerung noch die Datensteuerung im eigentlichen Projekt ist anders. Es wird nichts anderes gemacht an den Daten und trotzdem passiert der Fehler.
-
Habs damit gelöst dass ich folgende Funktion vorgängig aufrufe.
Damit wird wohl dann zu 100% die Validation des Grids ausgelöst und die Daten übernommen.
protected void GridEndEdit(DataGridView oGridView)
{
if (oGridView == null)
return;
DataGridViewCell currentCell = oGridView.CurrentCell;
oGridView.CurrentCell = null;
oGridView.CurrentCell = currentCell;
}
-
14.07.09 12:55 #3
- Registriert seit
- Feb 2008
- Ort
- Salzhemmendorf(Nds)
- Beiträge
- 51
Moin

Vielleicht hilft das CurrentCellDirtyStateChanged-Ereignis des DGV in Zusammarbeit mit dem CellValueChanged-Ereignis -> Bitte schau in die SDK-/MSDN-Doku Beispiel
Gruß RainerEs ist erstaunlich, was man alles findet, wenn man etwas sucht...
Ähnliche Themen
-
Varchar Feld in ein Datetime Feld umwandeln
Von sven hans im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 10.01.08, 06:39 -
Welches Dropdown Feld wurde verändert?
Von heikomi im Forum PHPAntworten: 8Letzter Beitrag: 04.01.08, 21:30 -
DataTable zu anderer DataTable hinzufügen
Von broetchen im Forum .NET DatenverwaltungAntworten: 4Letzter Beitrag: 12.09.05, 15:00 -
Kontakt Formular übermittelt Feld-Inhalte nicht
Von manulama77 im Forum Flash PlattformAntworten: 1Letzter Beitrag: 26.01.05, 17:40 -
Beim verändert wird Kennwort mit verändert
Von thomson im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 30.06.04, 14:49





Zitieren
Login





