tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
1863
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    CKS04 CKS04 ist offline Grünschnabel
    Registriert seit
    Jan 2009
    Beiträge
    4
    Hallo,

    habe eine Verbindung zu einer SQL-Server DB aufgebaut und lese eine Tabelle in ein Dataset (da = DataAdapter, ds = DataSet, dt = DataTable, bs = Binding Source)

    daDataGridView.Fill(dsDataGridView)
    dtDataGridView = dsDataGridView.Tables["TabellenName"]


    mein DataGridView ist an den DataTable (dtDataGridView) gebunden. Die Tabellendaten werden auch alle korrekt im DataGridView angezeigt.

    bsDataGridView.DataSource = dtDataGridView
    dgvDataGridView.DataSource = bsDataGridView

    Änderungen im DataGridView kann ich auch durchführen. Den letzendlichen Datenbankupdate habe ich über einen SpeicherButton einer MDI Form realisiert. Das DataGridView ist auf einer Childform.

    Mein Problem besteht jetzt darin das der DataTable der zum Update genutzt wird die letzte Änderung nicht mitbekommt. Ändere ich z.B drei Zeilen des DataGridView und drücke dann Speichern dann enthält das Update Datatset nur zwei Zeilen.

    mit diesen beiden Codezeilen mache ich den Update.

    DataTable dtChanges = dtDataGridview.GetChanges()
    daDataGridView.Update(dtChanges)

    Wenn ich mir ansehe wieviele Zeilen dtChanges enthält dann ist es immer genau eine weniger als ich wirklich editiert habe. Anscheinend bekommt dtDataGridview die letzte Änderung nicht mit weil ich einen Klick auf einer anderen Form mache.
    Seltsamerweise funktioniert es korrekt wenn ich als letzte Aktion eine Zeile lösche oder wenn ich nur eine Zeile lösche.

    Ich habe jetzt alles durchgesucht weiß aber nicht wo mein wirkliches Problem liegt.

    Kann mir einer weiterhelfen?

    CK
     

  2. #2
    raiguen raiguen ist offline Mitglied Silber
    Registriert seit
    Feb 2008
    Ort
    Salzhemmendorf(Nds)
    Beiträge
    51
    Moin,

    anstehende Änderungen (auch wenn es nur die letzte bearbeitete Zeile/Zelle ist) vor dem Speichern immer mit

    BindingSource.EndEdit() abschliessen.

    Zitat Zitat von MSDN
    Wenn die EndEdit-Methode aufgerufen wird, werden alle ausstehenden Änderungen auf die zugrunde liegende Datenquelle angewendet.
    In Deinem Falle also
    Code :
    1
    2
    3
    
    bsDataGridView.EndEdit();
    DataTable dtChanges = dtDataGridview.GetChanges()
    daDataGridView.Update(dtChanges)

    Guggst Du auch mal hier für weitere Informationen:
    http://msdn.microsoft.com/de-de/libr...it(VS.80).aspx
     
    Es ist erstaunlich, was man alles findet, wenn man etwas sucht...

Ähnliche Themen

  1. Update: update Spalte gleichzeitig als WHERE Bedingung
    Von Steusi im Forum Relationale Datenbanksysteme
    Antworten: 10
    Letzter Beitrag: 30.06.09, 08:18
  2. Update Trigger auch für ON DUPLICATE KEY UPDATE?
    Von Herr_M im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 20.05.09, 08:16
  3. Concurrency Exception im Update eines DatagridView
    Von MortenV im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 13.02.08, 11:27
  4. DataGridView Update geht nur einmal
    Von schmitti81 im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 05.09.07, 16:47
  5. DataGridView C++
    Von SyncIT im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 14.08.07, 09:07