tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
696
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Athor Athor ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    26
    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.
     

  2. #2
    Athor Athor ist offline Mitglied Bronze
    Registriert seit
    May 2007
    Beiträge
    26
    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;
    }
     

  3. #3
    raiguen raiguen ist offline Mitglied Silber
    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ß Rainer
     
    Es ist erstaunlich, was man alles findet, wenn man etwas sucht...

Ähnliche Themen

  1. Varchar Feld in ein Datetime Feld umwandeln
    Von sven hans im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 10.01.08, 06:39
  2. Welches Dropdown Feld wurde verändert?
    Von heikomi im Forum PHP
    Antworten: 8
    Letzter Beitrag: 04.01.08, 21:30
  3. DataTable zu anderer DataTable hinzufügen
    Von broetchen im Forum .NET Datenverwaltung
    Antworten: 4
    Letzter Beitrag: 12.09.05, 15:00
  4. Kontakt Formular übermittelt Feld-Inhalte nicht
    Von manulama77 im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 26.01.05, 17:40
  5. Beim verändert wird Kennwort mit verändert
    Von thomson im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 30.06.04, 14:49