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