none
C# - Normalisierte Datenbank RRS feed

  • Frage

  • Hallo,

    Folgendes Problem, ich habe 3 Tabellen die normalisiert sind. Bsp: Kunde, Artikel, Bestellung (MSSQL) soweit kein Problem.

    Mein Problem, ich weiß nicht wie das funktionieren sollte diese 3 Tabellen aus Visual Studio C# zu verändern - gleichzeitig, weil das muss sein weil diese in Beziehung stehen. Ist es normal jede einzelne Tabelle nach der Reihe ansprechen Daten ändern hinzufügen usw..., oder gibt es eine andere Möglichkeit...?

    <Das es zu keinen Missverständnissen kommt, ich beherrsche schon C# und bin in der Lage auf Tabelle zuzugreifen und diese zu verändern>

    Bitte um Tipps.
    Vielen Dank
    Danijel



    Mittwoch, 11. Februar 2015 07:42

Antworten

  • Hallo Danijel,

    mit SQL DML Befehlen wie Insert/Update/Delete kann man immer nur ein Tabelle direkt ansprechen, nie mehrere gleichzeitig. Von daher geht es immer nur in der richtigen Reihenfolge, sprich beim Insert erst den Primary Key Datensatz (Kunde, Artikel) und erst dann die referenzierenden Daten (Bestellung), beim (vollständigem) Löschen dann entsprechend in umgekehrter Reihenfolge.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert Danijel Kramar Donnerstag, 12. Februar 2015 14:42
    Mittwoch, 11. Februar 2015 08:09
  • Hi Danijel,
    je nach genutzter Technologie gibt es verschiedene Lösungswege. In typisierten DataSets mit TableAdapter gibt es eine UpdateAll-Methode, die je nach Zustand des zu speichernden Datensatzes die richtige Reihenfolge sichert.

    --
    Peter

    • Als Antwort markiert Danijel Kramar Donnerstag, 12. Februar 2015 14:42
    Mittwoch, 11. Februar 2015 18:03

Alle Antworten

  • Hallo Danijel,

    mit SQL DML Befehlen wie Insert/Update/Delete kann man immer nur ein Tabelle direkt ansprechen, nie mehrere gleichzeitig. Von daher geht es immer nur in der richtigen Reihenfolge, sprich beim Insert erst den Primary Key Datensatz (Kunde, Artikel) und erst dann die referenzierenden Daten (Bestellung), beim (vollständigem) Löschen dann entsprechend in umgekehrter Reihenfolge.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert Danijel Kramar Donnerstag, 12. Februar 2015 14:42
    Mittwoch, 11. Februar 2015 08:09
  • Hallo Olaf,

    ok, Danke. Ich dachte es gibt was anderes als das alles nach der Reihenfolge.

    Danke.

    Gruß Danijel 

    Mittwoch, 11. Februar 2015 09:24
  • Hallo Danijel,

    die Reihenfolge musst Du dabei selbst einhalten.

    Letztendlich wirst Du uns zeigen müssen, wie deine Datenbankstruktur aussieht, wie Du wo welche Daten verändern willst und welches konkrete Problem dann bei der entsprechenden Abarbeitung besteht.

    Es gibt in .NET zu viele Möglichkeiten, mit Datenbanken zu interagieren um eine allgemeine Empfehlungs aussprechen zu können.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 11. Februar 2015 09:31
    Moderator
  • Hi Danijel,
    je nach genutzter Technologie gibt es verschiedene Lösungswege. In typisierten DataSets mit TableAdapter gibt es eine UpdateAll-Methode, die je nach Zustand des zu speichernden Datensatzes die richtige Reihenfolge sichert.

    --
    Peter

    • Als Antwort markiert Danijel Kramar Donnerstag, 12. Februar 2015 14:42
    Mittwoch, 11. Februar 2015 18:03
  • Hallo Danijel,

    ergänzend noch: wenn etwas "gleichzeitig" in die DB geschrieben werden soll, sollte man es auch in einer DB-Transaktion verpacken (SqlConnection.BeginTransaction(), SqlTransaction.Commit(), .Rollback()), sodaß, wenn was schief läuft, man weiterhin konsistente Daten in der DB hat.

    Gruß
    Heiko

    Donnerstag, 12. Februar 2015 10:47
  • Hallo,

    vielen Dank für Eure Tipps!

    MfG Danijel

    Donnerstag, 12. Februar 2015 14:41