Ein Formular für Daten - eine einzige Katastrophe

  • VB.NET
  • .NET (FX) 4.0

    Ein Formular für Daten - eine einzige Katastrophe

    Liebes Forum,

    ich drehe bald durch - es klappt nicht und eine Lösung finde ich auch nicht.

    Ich habe eine Datenbankanwendung in Access realisiert, als Projekt und mit SQL-Server 2012. Das will ich jetzt neu umsetzen mit VS2013 in VB.

    Rahmeninfos:
    - MS-SQL-Server 2012 Express
    - Visual Studio 2013 Pro
    - Verbindung:

    XML-Quellcode

    1. <connectionStrings>
    2. <add name="EDVSRFMS.My.MySettings.EDVSRFMSConnectionString" connectionString="Data Source=ULTRABOOK;Initial Catalog=EDVSRFMS01;Persist Security Info=True;User ID=FMSUSER;Password=fms$user"
    3. providerName="System.Data.SqlClient" />
    4. </connectionStrings>


    Ich habe eine dbml-Datei die ich als Instanz in ein Formular referenziert habe
    - Private DCEDVSRFMS1 As New DCEDVSRFMS

    und beim Öffnen des Formulars zuordne
    - AnredenBindingSource.DataSource = DCEDVSRFMS1.Anreden
    - AbteilungenBindingSource.DataSource = DCEDVSRFMS1.Abteilungen
    - MitarbeiterBindingSource.DataSource = DCEDVSRFMS1.Mitarbeiter

    und ein BindingNavigator rundet das Ganze ab.

    Soweit, so gut - die Daten werden angezeigt, können bearbeitet werden, Navigation funzt, ich kann feststellen ob Änderungen vorhanden sind

    ABER und daran verzweifel ich gerade

    - wie ist es möglich nach Änderung diverser Felder diese wieder Rückgängig zu machen (Bearbeitung Abbrechen)?
    - Der Nutzer muss beim Verlassen des Datensatzes bei Änderungen gefragt werden ob diese gespeichert werden sollen - kein Problem, nur wenn er mit NEIN antwortet komme ich nicht wieder in den Urzustand des Datensatzes
    - Der Nutzer verletzt die Datenbankregeln, es kommt zu einem Fehler - auch kein Ding, nur wie kann man dann die Bearbeitung Abbrechen

    Ein Beispiel: Der Nutzer macht Änderungen am 5. Datensatz und springt in den 20. DS. Beim Wechsel will das Programm die Änderung speichern, es kommt zu einem Fehler. Dies wird dem Nutzer mitgeteilt und das Programm springt zurück in den 5. DS wo der Nutzer nun den Fehler behebt oder die Änderungen zurücksetzt.

    Das Zurücksetzen ist das gravierende Problem und Refreshes und Requeries auf allen Ebenen haben nichts gebracht.

    Ich brauche dringend Hilfe!


    Zusätzlich hätte ich gerne noch folgende Info, mit was für einer Datenverbindung arbeite ich hier eigentlich konkret (ADO, DataSet typ od. untyp, Linq) - ich habe leider ein wenig den Überblick verloren.
    Es handelt sich um eine ziemlich große Datenbank mit Tabellen, Sichten, Prozeduren und Funktionen auf DB-Seite - was ist da die besten Verbindungsmethode, Bearbeitung Formularbasierend und umfangreiche Änderungen, Berechnungen im Hintergrund über direkten Zugriff auf die DB.

    Leider habe ich den Wechsel von Access auf VB wohl gründlich unterschätzt.

    Gibt es eine umfangreiche Beispiel-Datenbank-Anwendung die alle Bereiche für ein professionelles Programm abdeckt? Was ich bisher entdeckt habe reicht leider nicht aus.

    Vielen, vielen Dank!

    PS: Im Quelltext kann man meine verzweifelten versuche der Aktualisierung sehen (MitarbeiterBindingNavigatorSaveItem_Click und Button1_Click)
    Dateien
    • frmMitarbeiter.vb

      (5,51 kB, 54 mal heruntergeladen, zuletzt: )