پنج شنبه 2 آبان 1392 - 9:47
ساخت Transaction در سی شارپ
بسم الله الرحمن الرحیم
آموزش برنامه نویسی آسنگرون در سی شارپ
در مطالب گذشته نحوه اجرای Transaction را در اسکیوال بیان کردم، خوب بسیاری از مزایای این کار بیان شد حال همین موارد را می توانیم در سی شارپ پیاده سازی نماییم، بدون توضیحات اضافی مثالی را بررسی می کنیم:
بسم الله الرحمن الرحیم
آموزش برنامه نویسی آسنگرون در سی شارپ
در مطالب گذشته نحوه اجرای Transaction را در اسکیوال بیان کردم، خوب بسیاری از مزایای این کار بیان شد حال همین موارد را می توانیم در سی شارپ پیاده سازی نماییم، بدون توضیحات اضافی مثالی را بررسی می کنیم:
protected void Button_Transaction_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection(@"Data Source=ESH-PC\FULL2008;Initial Catalog=ESH;Persist Security Info=True;User ID=sa;Password=123456");
sqlcon.Open();
SqlTransaction transAction = sqlcon.BeginTransaction("Parent");//Parent is name Transaction in Sql Server
SqlCommand sqlcmdA =
new SqlCommand("Insert into USERS(userName,password) VALUES ('A','A')"
,sqlcon,transAction);
sqlcmdA.ExecuteNonQuery();
Response.Write("Inserted A ////////");
//استفاده کردیمtry و catch در اینجا هم مثل اسکیوال از
try
{
try
{
transAction.Save("SavePoint");//Create Save Point
SqlCommand sqlcmdB =
new SqlCommand("Insert into USERS(userName,password) VALUES ('B','B')", sqlcon, transAction);
throw new Exception("خطایی رخ داده است"); //Like Raiserror in SQL
sqlcmdB.ExecuteNonQuery();
Response.Write("Inserted B////////");
}
catch (Exception er)
{
transAction.Rollback("SavePoint");
}
SqlCommand sqlcmdC =
new SqlCommand("Insert into USERS(userName,password) VALUES ('C','C')", sqlcon, transAction);
sqlcmdC.ExecuteNonQuery();
Response.Write("Inserted C ////////");
transAction.Commit();
}
catch (Exception er)
{
transAction.Rollback("Parent");
}
finally
{
sqlcon.Close();
}
}