четвер, 28 травня 2009 р.

Простір імен System.Transactions

транзакції з попереднього поста добре підходять для використання на рівні DAL коли в нас є доступ до об'єкта Connection.
коли ж потрібні транзакції на рівні BLL(де про Connection не повинно йти і мови)
можна використовувати класи з нового в .Net 2.0 простіру імен System.Transactions.

using (TransactionScope ts = new TransactionScope())
{
//тут виконуєпо потрібні операції

...

ts.Complete();
}


P.S. і не забудьте запустити службу Distributed Transaction Coordinator. без неї не працює.

Приклад ADO.NET транзакції


using (SqlConnection con = new SqlConnection(...))
{
con.Open();
SqlTransaction t = con.BeginTransaction();
using (SqlCommand c = new SqlCommand())
{
//тут виконуєпо потрібні операції
try
{
c.Connection = con;
c.Transaction = t;
c.CommandText = "text1";
c.ExecuteNonQuery();
c.CommandText = "text2";
c.ExecuteNonQuery();

//якщо все ОК - коммітимо
t.Commit();
}
catch (Exception exc)
{
//якщо трабл - робимо віткат
t.Rollback();
}
}
}

понеділок, 18 травня 2009 р.

JQuery + asp.net UpdatePanel

Щоб JQuery код працював і після оновлення UpdatePanel потрібно виконати його і після апдейта панелі.
наприклад:

$(function(){
Init();
Sys.Application.add_load(Init);
});

function Init(){
$('.tooltip-link').tooltip();
}