Csharp/C Sharp/Database ADO.net/OleDbTransaction
Версия от 15:31, 26 мая 2010; (обсуждение)
Содержание
Committed insert
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();
}
}
Illustrates transaction processing
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();
}
}
OleDbTransaction rollback
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();
}
}
Use OleDbTransaction
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();
}
}