Wie sollten Tabellen und Ansichten in einem C # / MS Access Projekt synchronisiert werden?

stimmen
0

Ich habe eine C # Datenbank-gestützte Anwendung mit einer Multi-Table Access-Datenbank als Backend. I Zusätzlich zu den Tabellen habe ich mehrere Ansichten, die die Tabellen für eine einfache Betrachtungs umformatieren. Mein Verständnis ist, dass die Ansichten für die Datenanzeige bestimmt sind, nur und nicht verwendet werden, sollten die Daten zu ändern, vor allem, wenn sie Fremdschlüssel Bindungen enthalten. Ich bin mit dieser Ordnung.

Also lassen Sie uns sagen, ich habe eine Patrons Tisch und eine vPatrons Ansicht:

DataTable Patrons;
DataTable vPatrons;

Ich habe eine Datagridview, die vPatrons und eine Reihe von Kombinationsfelder und Textfelder gebunden Patrons gebunden ist. Wenn der Benutzer Änderungen vornimmt und trifft auf eine Schaltfläche Speichern verpflichte ich die Änderungen an der Patrons Tabelle:

_bindingSource.EndEdit();
_tableAdapter.Update(Patrons);

So, jetzt meine Patrons Datatable, Patrons Datenbanktabelle und vPatrons Datenbankansicht werden alle aktualisiert. Aber ich muss noch meine vPatrons Datatable aktualisieren! Der einzige Weg, ich denken kann, dies zu tun ist, um die gesamte vPatrons Datatable neu zu füllen, die schrecklich ineffizient mir scheint:

_tableAdapter.Fill(vPatrons);

Kennt jemand einen besseren Weg zu halten, In-Memory-Tabellen und Ansichten synchronisiert?

Veröffentlicht am 04/09/2011 um 21:42
vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Ich glaube, du Dinge overcomplicating, wirklich! Ich denke, eine jetzt Antwort, aber es ist nicht leicht, wirklich Ihnen ohne die beste Lösung zu sagen, das Schema der Tabelle und Sicht gesehen zu haben. Ich weiß nicht, wie anders diese Objekte in Bezug auf den Spalten sind.

wenn Sie Daten müssen aus einer Tabelle lesen und die gleichen Daten auf einem anderen Weise oder Ansicht angezeigt wird, würde ich lieber die Daten geladen werden einmal aus der Datenbank und wie Sie tun, sollte sich in der Datatable Schirmherrschaft.

Auf diese Weise haben Sie Ihre Daten in der .NET-Seite zur Verfügung.

wenn Sie jetzt gleiche Daten müssen irgendwie für die Anzeige im UI manipulierten, würde ich mit einem Dataview in .NET Seite arbeiten, die dich mit der gleichen Datentabelle bleiben kann, schaffen Sie es so aus:

var myView = new Dataview (Förderern);

an dieser Stelle der Ansicht mit dem Tisch verbunden ist, können Sie filtern, sortieren Ausdruck Spalten hinzufügen und so weiter und es bleibt immer mit den Daten verbunden.

wenn Sie der Meinung sind, dass Ihre Ansicht in der Datenbank zu kompliziert ist und Sie nicht möchten, dass diese Ansicht Logik in der .NET-Anwendung erstellen, dann ist auch in Ordnung, sollten Sie entscheiden, ob Sie die Tabelle oder die Ansicht laden, sollten Sie, dass Sie auch speichern nur laden Sie die Ansicht in einer Tabelle und sobald Sie Ihre IDs haben, können Sie Aktualisierungen der Datenbank mit spezifischen Update-Anweisungen senden, müssen nicht nur mit der ganzen Tableadapter arbeiten.

So oder so, bis zu Ihnen, aber ich würde wirklich die beiden Objekte in .NET-Anwendung synchronisiert zu haben zu halten vermeiden ... (sie sind beide Tables tatsächlich auch wenn einer von ihnen Sie mit einem Blick aus Zugang zu füllen).

Beantwortet am 04/09/2011 um 21:52
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more