PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] DataGridView & Access


()V()r.Freeze
2009-08-31, 21:46:57
Hi all,

ich arbeite an einem Programm dass Daten aus einem Access-File ausliest. Diese werden in einem DataGridView angezeigt. Das funktioniert soweit auch. Nun möchte ich, dass vorgenommene Änderungen in das Access-File geschrieben werden.
Ich möchte hier keine vorgekaute Lösung, sondern wäre dankbar für ein wenig In-die-richtige-Richtung-treten :wink:.
Ich gehe folgendermaßen vor:

dataGridView1.EndEdit();
-> Beendet den Bearbeitungsmodus der markierten Zelle

originaltabelleTableAdapter.Update(accessfileDataSet.Originaltabelle);
-> Änderungen übertragen

accessfileDataSet.AcceptChanges();
-> Änderungen validieren und übernehmen

Das Programm läuft durch, ohne eine Ausnahme zu schmeißen. Das original-Access-File bleibt aber unverändert. Kann mir jemand nen Tip geben? Hab ich was vergessen?

Die Access-DB wurde in Visual Studio als Datenquelle importiert.

Matrix316
2009-09-01, 12:03:18
Muss man das Access File vielleicht noch extra abspeichern?

ESAD
2009-09-01, 12:36:55
Muss man das Access File vielleicht noch extra abspeichern?

ist schon länger her. aber eigentlich sollte das wie ne db angesprochen werden.

Matrix316
2009-09-01, 13:22:58
Dann würde ich einfach noch mal debuggen, ob sich was tut. Ist vielleicht irgendwo ein Try Catch dazwischen, was eine Exception abwirft? Sowas bekommt man ja oft garnicht mit, wenn man es nicht irgendwo ausgibt.

Johnny
2009-09-01, 15:56:06
Stichwort: CommandBuilder . In deinem Fall OleDbCommandBuilder.

Gast
2009-09-01, 20:02:49
Du musst AcceptChanges() natürlich auch vor TableAdapter.Update aufrufen.

Gast
2009-09-01, 23:24:48
^^ Sorry, war natürlich Müll von mir :-(

Nimm am besten den CommandBuilder, wie das der Gast weiter unten vorgeschlagen hat.

catamaran
2009-09-02, 10:02:14
Denk dran, dass wenn du die Access-DB importierst, dass er diese in dein Projektverzeichnis kopiert und nur diese ändert.
Die ursprüngliche DB bleibt von den Änderungen unberührt.

Ansonsten hast du von den Befehlen alles richtig gemacht.

PS:
BindingSource.EndEdit() könntest du noch einbauen.

()V()r.Freeze
2009-09-02, 22:51:40
Danke an euch, funktioniert mittlerweile :)

robobimbo
2009-09-03, 14:59:24
ja, und was war nu die richtige lösung? :D

()V()r.Freeze
2009-09-03, 17:37:07
Das Besiegen der eigenen Doofheit :)
Ich hab verrallt dass das ursprüngliche File geladen wird wenn man was im Programm geändert hat :freak: