Sobes.tech
Junior — Middle

შეიძლება გქონდეთ მონაცემთა ბაზების მართვის სისტემებში ტრანზაქციების გამოყენების გამოცდილება?

sobes.tech AI

პასუხი AI-სგან

დიახ, C#-ში მონაცემთა ბაზებთან მუშაობისას ხშირად გამოიყენება TransactionScope კლასი ან კონკრეტული მონაცემთა ბაზის პროვაიდერის მიერ მოწოდებული ტრანზაქციები, მაგალითად, SQL Server-ისთვის SqlTransaction.

ტრანზაქცია საშუალებას აძლევს რამდენიმე ოპერაციის გაერთიანებას მონაცემთა ბაზაში ერთ მთლიანობაში, რომელიც ან სრულად შესრულდება, ან შეცდომის შემთხვევაში მთლიანად გაუქმდება, რაც უზრუნველყოფს მონაცემების მთლიანობას.

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() არ გამოიძახება, ყველა ცვლილება გაუქმდება.