Laden...

AccessDataSource und UPDATE

Erstellt von Starfight vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.330 Views
S
Starfight Themenstarter:in
62 Beiträge seit 2005
vor 17 Jahren
AccessDataSource und UPDATE

Ich greife von einer Webseite via AccessDataSource auf eine Access Datenbank zu.
Dazu habe ich ein Griedview an das AccessDataSource gebunden.
Die Daten werden auch angezeigt.

Nun ändere ich via Code Daten im GriefView.
z.B: so.

GridView1.Rows[0].Cells[8].Text = "XYZ";

Danach dann ein

AccessDataSource1.Update();

aber die Daten werden in der Datenbank nicht geändert.
Es stehen immer noch die ursprünglichen Werte drin.
Es wird auch keine Fehlermeldung ausgegeben.

Auch ein

GridView1.UpdateRow(0, true);

habe ich versucht, aber dann werden mir in der Datenbank bei diesem einen Datensatz alle Werte gelöscht, sprich, es steht nur noch NULL überall drin.

Kann mir mal einer nen Tip geben, wie ich den nun Programmgesteuert Werte in der Datenbank ändern kann ?

M
104 Beiträge seit 2005
vor 17 Jahren

Hallo Starfight,

wie lädst Du die Daten in die AccessDataSource? Via DataAdapter oder manuell? Wenn Du das manuell erledigst, musst Du Dich auch selbst darum kümmern, dass geänderte Daten zurück in die Db geschrieben werden.

Gruß
Morpheus

S
Starfight Themenstarter:in
62 Beiträge seit 2005
vor 17 Jahren

Nein, ich lass das vom AccessDataAdapter erledigen.
Also auf dem Designer ein AccessDataAdapter gesetzt, Dataadapter Konfigurieren und auch gesagt, das er die Insert, Delete und Update bitte generieren soll.

Das komisch kommt jetzt.
Wenn ich einen Bearbeiten Button Automatisch generieren lasse, dann kann ich die entsprechenden Stellen auch editieren und die werden dann auch in der Datenbankdatei gespeichert.
Nur eben nicht, wenn ich es Programmgesteuer über das DataGridView mache.

So, ich habe gerade mal das GridView1_RowUpdating Ereignis abgefangen um mir mal e.NewValues.Count anzeigen zu lassen.

Dabei kam folgendes raus.
Klicke ich auf den von mir erstellten Button UPDATE, wird bei mir folgender Code ausgeführt:
AccessDataSource1.Update();
aber NICHT in die Ereignisroutien gesprungen, also wird UPDATE für die Datenbank auch nicht ausgeführt.

Nun klicke ich auf den zweiten von mir erstellten Button, der mittels
GridView1.Rows[0].Cells[9].Text = "XYZ";
etwas in das GriedView schreibt und danach dann auf den UPDATE Button.
Selbes Ergebnis. Die Ereignisroutine wird nicht aufgerufen.

Nun klicke ich auf den BEARBEITEN Button im GridView, der ja durch auswahl von "AutoGenerateEditButton" erstellt wurde, ändere irgendwas, klicke "Aktualisieren" und schwups, wird die Ereignisroutine auch angesprungen.

Es sieht für mich so aus, als wenn durch meinen Code das Griedview nicht mitbekommt, das was geändert wurde und damit auch die Datenbank nicht aktualisiert wurde.

Nur, wie mache ich dem GriedView klar, das sehr wohl was geändert wurde ?