Csharp/C Sharp/Database ADO.net/OleDbTransaction

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Committed insert

<source lang="csharp"> using System; using System.Data; using System.Data.OleDb; public class Transact {

public static void Main () { 
  String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=.\\Employee.mdb";
  OleDbConnection con = new OleDbConnection(connect);
  con.Open();  
  Console.WriteLine("Made the connection to the database");
  OleDbCommand cmd = con.CreateCommand();
  OleDbTransaction trans = con.BeginTransaction();
  cmd.Transaction = trans;
  cmd.rumandText ="INSERT INTO Employee VALUES (12,"CD","wwe",10)";
  cmd.ExecuteNonQuery();
  trans.rumit();
  cmd.rumandText = "SELECT First_name FROM Employee";
  OleDbDataReader reader = cmd.ExecuteReader();
  while(reader.Read()) 
    Console.WriteLine("{0}",
              reader.GetString(0));
  reader.Close();
  con.Close();
}

}

      </source>


Illustrates transaction processing

<source lang="csharp"> using System; using System.Data; using System.Data.OleDb; public class Transact {

public static void Main () { 
  String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=.\\Employee.mdb";
  OleDbConnection con = new OleDbConnection(connect);
  con.Open();  
  Console.WriteLine("Made the connection to the database");
  OleDbCommand cmd = con.CreateCommand();
  OleDbTransaction trans = con.BeginTransaction();
  cmd.Transaction = trans;
  cmd.rumandText ="INSERT INTO Employee VALUES (09,"qwe","ewq",123)";
  cmd.ExecuteNonQuery();
  cmd.rumandText = "SELECT First_name FROM Employee";
  OleDbDataReader reader = cmd.ExecuteReader();
  while(reader.Read()) 
    Console.WriteLine("{0}",
              reader.GetString(0));
  reader.Close();
  con.Close();
}

}

      </source>


OleDbTransaction rollback

<source lang="csharp"> using System; using System.Data; using System.Data.OleDb; public class Transact {

public static void Main () { 
  String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=.\\Employee.mdb";
  OleDbConnection con = new OleDbConnection(connect);
  con.Open();  
  Console.WriteLine("Made the connection to the database");
  OleDbCommand cmd = con.CreateCommand();
  OleDbTransaction trans = con.BeginTransaction();
  cmd.Transaction = trans;
  cmd.rumandText ="INSERT INTO Employee VALUES (09,"qwe","ewq",123)";
  cmd.ExecuteNonQuery();
  cmd.rumandText = "SELECT First_name FROM Employee";
  OleDbDataReader reader = cmd.ExecuteReader();
  while(reader.Read()) 
    Console.WriteLine("{0}",
              reader.GetString(0));
  reader.Close();
  trans.Rollback(); 

  cmd.rumandText = "SELECT First_name FROM Employee";
  reader = cmd.ExecuteReader();
  Console.WriteLine("Rolled back insert and update -- table unchanged");
  Console.WriteLine("First_name");
  while(reader.Read()) 
    Console.WriteLine("{0}",
              reader.GetString(0));
  reader.Close();
  con.Close();
}

}

      </source>


Use OleDbTransaction

<source lang="csharp"> using System; using System.Data; using System.Data.OleDb; public class Transact {

public static void Main () { 
  String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=.\\Employee.mdb";
  OleDbConnection con = new OleDbConnection(connect);
  con.Open();  
  Console.WriteLine("Made the connection to the database");
  OleDbCommand cmd = con.CreateCommand();
  OleDbTransaction trans = con.BeginTransaction();
  cmd.Transaction = trans;
  cmd.rumandText = "UPDATE Employee SET Salary = 1342 "
                       + "WHERE ID > 1";
  cmd.ExecuteNonQuery();
  cmd.rumandText = "SELECT First_name FROM Employee";
  OleDbDataReader reader = cmd.ExecuteReader();
  while(reader.Read()) 
    Console.WriteLine("{0}",
              reader.GetString(0));
  reader.Close();
  con.Close();
}

}

      </source>