Laden...

dataset leeren

Erstellt von chazon vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.956 Views
C
chazon Themenstarter:in
70 Beiträge seit 2008
vor 11 Jahren
dataset leeren

verwendetes Datenbanksystem: mssql 2008

Hallo Leute

ich möchte ein ganzes Dataset mit allen Tabellen leeren und das in der Datenbank speichern

mit

dataset.clear();
tableadapter.Update(Dataset);

funktioniert es nicht

danke und Gruß
Chazon

F
10.010 Beiträge seit 2004
vor 11 Jahren

ich möchte ein ganzes Dataset mit allen Tabellen leeren und das in der Datenbank speichern

Bahnhof?

Was willst du nun, das DataSet leer machen oder es in die DB speichern?
So wie du es machst hat es keinen sinn.

C
chazon Themenstarter:in
70 Beiträge seit 2008
vor 11 Jahren

Ich möchte mir ein kleines Tool schreiben in dem ich aus einer mysql Datenbank Daten in eine MSSQL Datenbank konvertiere (einfach ausgedrückt) .
Dabei nutze ich als zwischenschritt eine weitere MSSAL Datenbank. Wenn ich diesen Vorgang erneut starte sind noch alte Daten in dieser Datenbank vorhanden. Diese Daten möchte ich aber dann komplett löschen ohne die STruktur zu löschen.

So ist das vvielleicht besser erklärt.

gruß chazon

V
162 Beiträge seit 2010
vor 11 Jahren

SQL: TRUNCATE TABLE [NAME_TABELLE]

Das sollte dir weiter helfen.

MfG

Das Leben ist schön!

C
chazon Themenstarter:in
70 Beiträge seit 2008
vor 11 Jahren

Danke für die Antwort

SQL: TRUNCATE TABLE [NAME_TABELLE]

Das sollte dir weiter helfen.

So wie ich das sehe geht das aber auch nur auf einzelne Tabellen. Da ich von Natur aus bequem bin, würde ich so etwas gerne in einem STatement erhsclagen, nicht auf 35 Tabellen einzeln anwenden 🤔

3.511 Beiträge seit 2005
vor 11 Jahren

EXEC sp_msforeachtable 'TRUNCATE TABLE ?'

Aber vorsicht: Das geht wirklich auf alle Tabellen. Notfalls schreib dir einfach einmal eine SP, die das macht und führe die SP aus.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

3.825 Beiträge seit 2006
vor 11 Jahren

Hallo Chazon,

mit
dataset.clear();
tableadapter.Update(Dataset);
funktioniert es nicht

Zur Erklärung : ds.Clear() entfernt alle Zeilen aller Tabellen aus einem Dataset. Mit Update() werden keine Löschungen an die Datenbank übertragen. Das Dataset weiss nicht mehr, welche Zeilen gelöscht wurden.

So würde man die Zeilen in den Tabellen im Dataset als gelöscht markieren und die Löschungen per Update() an die Datenbank übertragen :

foreach (DataTable dt in ds.Tables)
    foreach(Datarow rw in dt.Rows)
        rw.Delete();
da.Update();

Das Löschen der einzelnen Zeilen ist aber sehr langsam, besser löscht man mit 'truncate' oder 'delete from ...'.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

C
chazon Themenstarter:in
70 Beiträge seit 2008
vor 11 Jahren

Alles klar

Ich denke ich habe den clearbefehl falsch interpretiert.
Danke für die Hilfe

gruß Chazon

F
10.010 Beiträge seit 2004
vor 11 Jahren

Nein, Du hast das System DataSet und damit ADO.NET Falsch verstanden.