Laden...

Daten in Tabelle Lesen und bestätigen

Erstellt von Grimmbizkit vor 15 Jahren Letzter Beitrag vor 15 Jahren 971 Views
G
Grimmbizkit Themenstarter:in
310 Beiträge seit 2006
vor 15 Jahren
Daten in Tabelle Lesen und bestätigen

verwendetes Datenbanksystem: SQL Express 05

Hallo zusammen.,
ich bräuchte mal einen Tipp, ich habe ein Tabelle aus der ich Daten in Textdateien schreiben muss. Damit ich die Datensätz nicht doppelt oder dreifach exportiere hat jeder Datensatz ein Flag (exported) Ich exportiere nur Datensatz wo dieses Flag Flase (0) ist.

Wie mache ich das am besten / sichersten??

  • 2 SqlVerbindungen
  • Dann mit DataReader eine Zeile lesen und exportieren
  • Mit der zweiten Verbindung das Flag setzen.

oder

  • Anzahl Datensätze mittels Count auslesen / speichern
  • Array entsprechend dimensionieren
  • Dann mit DataReader eine Zeile lesen , exportieren und ID in Array speichern
  • Array durchlafen für die Ids im Array das Flag setzen.

oder

???????

Oder habt ihr eine bessere Lösung/Idee für mich. Bin für jede Hilfe Dankbar.

Gruß Simon

Gelöschter Account
vor 15 Jahren

oder:
ein select mit allen relevanten daten ausführen und das ergebniss direkt in eine datatable füllen lassen. anschließend mit einer simplen foreach durch die rows der datatable gehen und direkt in die datei schreiben.

G
Grimmbizkit Themenstarter:in
310 Beiträge seit 2006
vor 15 Jahren

Dann hätte ich allerdings ein Problem, da ich anhand bestimmter Felder auch unterschiedliche Dateien habe. Ich habe die Daten ja immer noch nicht in der Tabelle bestätigt (das Flag für Export gesetzt).

Gelöschter Account
vor 15 Jahren

du musst doch den export nicht extra bestätigen. wenn du das dennoch machen willst, dann kannst du innerhlab der foreach für die rows auch ein update-statement machen, das das flag setzt.

das du je nach wert der rows in andere dateien schreiben willst, ist absolut kein problem.

3.825 Beiträge seit 2006
vor 15 Jahren

Hallo Simon,

so zum Beispiel :

...
foreach (DataRow rw in ds.Tables["tabelle1"].Rows)
{
    ExportRow(rw);
    rw["flag"] = true;
}
conn.Open();
anzahl = da.Update(ds, "tabelle1");
...

Das Beispiel ist aus Kapitel 6 "Daten ändern" aus http://www.seven-c.de/files/Datenbankenhowto.htm (woher sonst ?)

Es werden allerdings alle Datensätze im Speicher gehalten. Wenn das viele sein können (mehr als 10.000) dann würde ich das ganze aufteilen (top / limit Befehl)

Grüße Bernd

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

G
Grimmbizkit Themenstarter:in
310 Beiträge seit 2006
vor 15 Jahren

Es können insgesamt im Grunde unendlich viele werte sein. Doch die Daten, die geändert werden können / Sollen sind max 1000 Stück tippe ich. mehr nicht.

Gelöschter Account
vor 15 Jahren

das ist nciht viel. das sollte recht flott gehen.

G
Grimmbizkit Themenstarter:in
310 Beiträge seit 2006
vor 15 Jahren

Hat alles funktioniert, danke. 👍