Robert B.: C# update database

Beitrag lesen

Moin,

Was mir nicht gefällt, da ich eine Schleife für alle zu "Schreibenden" Werte zur Datenbank haben muss. d.h. bei jedem Wert mache ich einen Schreibzugriff ...

Du machst für jeden Datensatz aus dem Array ein INSERT/UPDATE. Wenn Du die Möglichkeit hast so genannte „Batch-Inserts“ zu nutzen, dann solltest Du das unbedingt tun. In diesem Fall sammelt nämlich die Datenbank-Schnittstelle die Werte und sendet sie „in einem Rutsch“ zum Server. In Java sähe das ungefähr so aus:

try (Connection con = DriverManager.getConnection();
     PreparedStatement insert = con.prepareStatement("INSERT INTO db_name (name, wert) VALUES(?,?)")
{
    for (Item i : item_list) {
        insert.setString(1, i.getName());
        insert.setString(2, i.getValue());
        insert.addBatch();
    }

    insert.executeBatch();
}

Ich hatte bei einem node-Projekt von mir, einen ähnlichen Fall. Hier konnte jeweils ein Array für "key und value" übergeben werden und es wurde alles mit einem "Schreibzugriff" in die Datenbank geschrieben.

Ich vermute, dass es eine Node-Bibliothek gibt, die genau diese Batch-Inserts kapselt. Ob es so etwas für .Net gibt, weiß ich leider nicht.

Viele Grüße
Robert