PDA

View Full Version : پیاده سازی transaction در asp.net



Identifier
سه شنبه 26 مهر 1384, 09:44 صبح
با سلام خدمت دوستان
می خواستم بدونم در asp.net چطوری می شه transaction رو پیاده سازی کرد
در دلفی Start Transaction , Comit داشتیم اینجا چجوری باید اینو پیاده سازی کرد
اینجا من هر چی گشتم SqlCommand.transaction comit,rollback داره ولی چجوری باید start کرد
باتشکر

titbasoft
سه شنبه 26 مهر 1384, 11:43 صبح
در asp.net به 3 روش بسته به نوع طراحی سیستمتون می تونید transaction بوجود بیارید.
1) dataset level : دیتاست متدهایی از جمله AcceptChanges و RejectChanges و update و ... داره که به شما امکان استفاده از transaction در سطح دیتاست رو میده.
2) connection level: به روشی که در زیر در موردش بیشتر توضیح می دم میتونید یک transaction در سطح connection ایجاد کنید
3) enterprise level: در این روش با استفاده از امکانات +COM و Distributed Transaction ها امکان بوجود آوردن یک transaction در سطح application وجود حواهد داشت.

و اما یه نمونه کد برای حالت دوم:

// Open the database connection.
ContactMgmt.Open();
// Declare a transaction object.
SqlTransaction transDelete;
// Create the tranasction.
transDelete = ContactMgmt.BeginTransaction
(IsolationLevel.ReadCommitted);
// Create the command to delete from Contacts table.
SqlCommand cmdDelete = new SqlCommand("DELETE FROM Contacts" +
" WHERE ContactID=" + intContactID.ToString(),
ContactMgmt, transDelete);
// Execute the commands
try
{
int intRows;
// Delete row from Contacts table.
intRows = cmdDelete.ExecuteNonQuery();
// Delete Calls for this ContactID.
cmdDelete.CommandText = "DELETE FROM Calls WHERE " +
" ContactID=" + intContactID.ToString();
intRows = intRows + cmdDelete.ExecuteNonQuery();
// Commit the transaction.
transDelete.Commit();
// Return success message.
return intRows.ToString() + " deleted.";
}
catch
{
// Restore the database state if there was an error.
transDelete.Rollback();
// Return error message.
return "Contact could not be deleted.";
}
finally
{
// Close the database.
ContactMgmt.Close();
}

البته هون طوری که می دونید transaction های سمت سرور (database server) بر این transaction ها اولویت دارند.

Identifier
سه شنبه 26 مهر 1384, 11:47 صبح
ممنون از راهنماییتون وقعا کامل بود جواب گرفتم