Это на самом деле не связано с ASP.NET, но, как правило, как транзакции работают в .NET Framework. С SqlClient вот как вы это делаете:
using (var connection = new SqlConnection("your connectionstring"))
{
connection.Open();
using (var transaction = connection.BeginTransaction())
{
try
{
using (var command1 = new SqlCommand("SP1Name", connection, transaction))
{
command1.ExecuteNonQuery();
}
using (var command2 = new SqlCommand("SP2Name", connection, transaction))
{
command2.ExecuteNonQuery();
}
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
}
Вам, конечно, нужно добавить Parameters
к SqlCommand
объектам перед их выполнением, и какой метод выполнения вы используете (ExecuteNonQuery()
, ExecuteScalar()
или ExecuteReader()
), зависит от того, действительно ли ваши хранимые процедуры возвращают любые данные или нет.