2016-04-14 5 views
0

Ich aktualisiere gerade eine Software in C#, die auf eine MySQL-Datenbank zugreift und erlaubt, Werte von der Datenbank zu ändern, hinzuzufügen und zu löschen. Derzeit sind es Benutzerdaten (d. H. Benutzername, Vor- und Nachname, E-Mail-Adresse usw.). Dies funktioniert derzeit ziemlich gut mit Datenbindung, gebundenen Steuerelementen, einem verbindlichen Navigator und all dem Zeug.Datenbindung in C# mit Ansichten und wie man sie aktualisiert

Ich möchte jetzt die Software erweitern und einige neue Elemente hinzufügen. Leider kann ich die aktuell vorhandenen Datenbanktabellen nicht ändern. Ich muss neue schaffen. Zum Beispiel, zusätzlich zu der Tabelle "Benutzer", erstelle ich jetzt eine Tabelle "Benutzerdetails" mit einigen zusätzlichen Informationen. Der Kürze halber sagen wir, es ist Geburtsdatum und Geschlecht.

Die neue Tabelle hat eine 1: 1-Beziehung mit der Tabelle users und ich kann leicht eine kombinierte Auflistung aller Benutzer und ihrer erweiterten Eigenschaften abrufen. Auch mit C# funktioniert das ziemlich gut. Da die Abfrage jedoch ziemlich lang und kompliziert ist, habe ich beschlossen, eine Ansicht zu erstellen und die Steuerelemente an diese zu binden.

Ich weiß, man kann eine Ansicht nicht direkt aktualisieren. Gibt es einen bevorzugten Weg, das in C# zu tun? Kann ich die Update-Methode meiner TableAdapters verwenden? Muss ich die SQL-Anweisungen manuell schreiben, um die verschiedenen Tabellen zu aktualisieren, aus denen meine Ansicht besteht?

Antwort

0

Ich weiß nicht, Grund, warum Sie Benutzer Tabelle nicht ändern, um neue Spalte hinzuzufügen. Warum machst du einen neuen Tisch? In Ihrem Fall: Der beste Weg ist, die Benutzertabelle zu ändern, um eine neue Spalte hinzuzufügen.

+0

wie bereits oben erwähnt, kann ich die derzeit vorhandenen Datenbanktabellen nicht ändern. Gründe: (1) Ich habe nicht die notwendigen Berechtigungen, (2) es gibt andere Anwendungen, die auf dem aktuellen Datenbank-Tabellen-Layout beruhen. Außerdem sind die neuen Tabellen (eigentlich gibt es zwei zusätzliche Tabellen) viel komplizierter. Ich habe das hier vereinfacht. – TomS

+0

müssen Sie Daten davon erhalten? Können Sie eine Tabelle so erstellen, wie sie Daten von ihr in eine neue Tabelle migrieren? –

+0

Ich muss sowohl Daten aus den JOINed-Tabellen abrufen als auch Daten in alle Tabellen zurückschreiben (abhängig davon, welche Werte geändert/hinzugefügt wurden). Ich möchte die Tabelle nicht erneut mit denselben Daten erstellen. Ich möchte gefährliche Entlassungen vermeiden ... – TomS