# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > دسترسی به داده ها (ADO.Net و LINQ و ...) >  transection چيست؟

## sh2007

دوستان كسي مي تونه درباره transection توضيح بده 
ممنون

----------


## Ali_Mor

transactionیک مفهوم در بانک اطلاعاتی است به این معنی که تعدادی دستور بر روی پایگاه داده اجرا می شوند. اما این دستورات یا همگی با موفقیت اجرا می شوند یا اگر یکی از دستورات با مشکل روبرو شد، بقیه دستورات(حتی دستورات قبلی) نیز کان لم یکن تلقی شده و اثرات اجرای آنها برروی بانک از بین می رود.
مثلا فرض کنید 5 دستور insert در یک transaction قراردارند. اگر هنگام اجرای دستور سوم مشکلی رخ دهد(به هر دلیل) داده های وارد شده توسط دو دستور قبل از آن هم از بانک پاک می شوند

----------


## sh2007

دوست من مي توني يه مثال كوچيك برني

----------


## davoodrm666_666

Dim sqlConnection As New SqlConnection(connectionString)sqlConnection.Open()Dim sqlTransaction As SqlTransaction = sqlConnection.BeginTransaction()Dim sqlCommand As New SqlCommand()sqlCommand.Transaction = sqlTransactionTry    sqlCommand.CommandText = "Insert into Employee (EmpCode, EmpName) VALUES (1, 'Joydip')"    sqlCommand.ExecuteNonQuery()    sqlCommand.CommandText = "Insert into Dept (DeptCode, DeptName, EmpCode) VALUES (9, 'Software', 1)"    sqlCommand.ExecuteNonQuery()        'Usual code    sqlTransaction.Commit()Catch e As Exception        'Usual code    sqlTransaction.Rollback()Finally    sqlConnection.Close()*Dim* sqlConnection *As* *New* SqlConnection(connectionString)sqlConnection.Open()*Dim* sqlTransaction *As* SqlTransaction = sqlConnection.BeginTransaction()*Dim* sqlCommand *As* *New* SqlCommand()sqlCommand.Transaction = sqlTransaction*Try*    sqlCommand.CommandText = "Insert into Employee (EmpCode, EmpName) VALUES (1, 'Joydip')"    sqlCommand.ExecuteNonQuery()    sqlCommand.CommandText = "Insert into Dept (DeptCode, DeptName, EmpCode) VALUES (9, 'Software', 1)"    sqlCommand.ExecuteNonQuery()        'Usual code    sqlTransaction.Commit()*Catch* e *As* Exception        'Usual code    sqlTransaction.Rollback()*Finally*    sqlConnection.Close()*End* *Try*End Try

----------


## mohsen_zelzela00

> دوست من مي توني يه مثال كوچيك برني


دوست عزیز این یک مثال خیلی سادست

SqlConnection db = new SqlConnection("connstringhere");
      SqlTransaction transaction;

      db.Open();
      transaction = db.BeginTransaction();
      try 
      {
         new SqlCommand("INSERT INTO TransactionDemo " +
            "(Text) VALUES ('Row1');", db, transaction)
            .ExecuteNonQuery();
         new SqlCommand("INSERT INTO TransactionDemo " +
            "(Text) VALUES ('Row2');", db, transaction)
            .ExecuteNonQuery();
         new SqlCommand("INSERT INTO CrashMeNow VALUES " +
            "('Die', 'Die', 'Die');", db, transaction)
            .ExecuteNonQuery();
         transaction.Commit();
      } 
      catch (SqlException sqlError) 
      {
         transaction.Rollback();
      }
      db.Close();
   }

----------

