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()-ը չկոչվի, բոլոր փոփոխությունները հետ կվերացվեն։