ساخت Transaction در سی شارپ

ساخت 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();
        
        }
    }

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس