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() даъват нашавад, ҳамаи тағйиротҳо баргардонида мешаванд.