Announcement

Collapse
No announcement yet.

Hinzufügen und Löschen von Datensätzen einer Datenbanktabelle mit Quelle datatable

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hinzufügen und Löschen von Datensätzen einer Datenbanktabelle mit Quelle datatable

    Hallo,

    auf dem SQL Servcer ist eine Datenbank mit einer Tabelle tblPersonen mit folgenden Spalten: ID (Primary Key), Name, Vorname

    In meiner .NET Anwendung generiere ich eine datatable dtLoeschen mit einer Spalte ID und eine datatable dtAnfuegen, ebenfalls mit Spalte ID.

    1. Wie kann ich möglichst effizient aus der Tabelle tblPersonen diejenigen Datensätze loeschen, die in dtLoeschen sind (also tblAdressen.ID = dtLoeschen.ID)?
    Ich könnte natürlich die datatable für jeden Datensatz durchlaufen und für jede Zeile eine Löschabfrage einzeln absenden, aber das geht doch bestimmt eleganter und schneller, oder?

    2. Es kann sein, dass in dtAnfuegen Ids sind, die bereits in der tblPersonen vorhanden sind. Wie kann ich, ohne jedes Mal eine Schlüsselverletzung zu generieren, die fehlenden Datensätze aus dtAnfuegen der Tabelle tblPersonen hinzufügen?



    Danke

  • #2
    Bin kein Profi, aber mir ist nicht bekannt, wie Du die DataTables und die SQL-Tabelle verknüpfen könntest. Ich habe bisher bei so einer Problematik nur die Möglichkeit genutzt, die DataTables zu durchlaufen. Wenn alle Tabellen im SQL liegen würden, kannst Du sicher mit einer einzigen Query auskommen. Und wenn es ständig gebraucht wird, könn man auch einen Delete- und Insert-Trigger bauen.

    Comment


    • #3
      Ist nicht nicht mher ganz aktuell aber der TE scheint doch öfter hier zu sein.

      Das sollte sich mit einer WHERE IN machen lassen, wenn ich das richtig verstandne hab. Selbst wenn die Ids aus deinen dtLoeschen und tblAnfügen nicht aus derselben DB kommen, musst du diese tbls ja füllen via Code, so versteh ich das. Statt nun diese zu füllen, könnte das jeweils ein string sein, für das WHere In. Für das Anfügen kommt man wohl nicht daran vorbei etwas code zu schrieben, damit dieser string nur jene IDs hat, die in tblPerson nicht vorkommen.
      Liegt alles auf dem selben Server kann man die Ids für das anfügen via outer join ziehen.

      Comment


      • #4
        Originally posted by ebk2 View Post
        Ist nicht nicht mher ganz aktuell aber der TE scheint doch öfter hier zu sein.

        Das sollte sich mit einer WHERE IN machen lassen, wenn ich das richtig verstandne hab. Selbst wenn die Ids aus deinen dtLoeschen und tblAnfügen nicht aus derselben DB kommen, musst du diese tbls ja füllen via Code, so versteh ich das. Statt nun diese zu füllen, könnte das jeweils ein string sein, für das WHere In. Für das Anfügen kommt man wohl nicht daran vorbei etwas code zu schrieben, damit dieser string nur jene IDs hat, die in tblPerson nicht vorkommen.
        Liegt alles auf dem selben Server kann man die Ids für das anfügen via outer join ziehen.

        Vielen Dank für die Hinweise. Ich bin nun tatsächlich so vorgegangen, dass ich die datatable durchlaufe.
        Beim Anfügen wird jedesmal abgefragt, ob vorhanden.
        Funktionert auch soweit ganz gut und performant. Mal sehen, wie sich das entwickelt mit zunehmenden Datenvolumen

        Comment

        Working...
        X