Sobes.tech
Junior — Middle

Έχετε εμπειρία στη χρήση συναλλαγών σε συστήματα διαχείρισης βάσεων δεδομένων;

sobes.tech AI

Απάντηση από AI

Ναι, στη C# για εργασία με συναλλαγές σε βάσεις δεδομένων συχνά χρησιμοποιείται η κλάση TransactionScope ή οι συναλλαγές που παρέχονται από τον συγκεκριμένο πάροχο βάσης δεδομένων, π.χ. SqlTransaction για SQL Server.

Η συναλλαγή επιτρέπει να ομαδοποιήσετε πολλές λειτουργίες στη βάση δεδομένων σε ένα ενιαίο σύνολο, το οποίο είτε εκτελείται πλήρως είτε ανακαλείται πλήρως σε περίπτωση σφάλματος, διασφαλίζοντας την ακεραιότητα των δεδομένων.

Παράδειγμα με TransactionScope:

using (var scope = new TransactionScope())
{
    using (var connection = new SqlConnection(connectionString))
    {
        connection.Open();

        var command1 = new SqlCommand("INSERT INTO Table1 ...", connection);
        command1.ExecuteNonQuery();

        var command2 = new SqlCommand("UPDATE Table2 ...", connection);
        command2.ExecuteNonQuery();
    }

    scope.Complete(); // Επιβεβαιώνουμε τη συναλλαγή
}

Αν προκύψει εξαίρεση στο μπλοκ και δεν κληθεί το scope.Complete(), όλες οι αλλαγές θα ανακληθούν.