快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

.net中数据库事务机制

在初始化SqlTransaction类时,你需要使用SqlConnection类的BeginTranscation()方式:
SqlTransaction myTran; myTran=myConn.BeginTransaction(); 
????该方式返回一个SqlTransaction类型的变量。在调用BeginTransaction()方式以后,所有基于该数据连接对象的SQL语句执行动作都将被认为是事务MyTran的一部分。同时,你也可以在该方式的参数中指定事务隔离级别和事务名称,如:
SqlTransaction myTran;
myTran=myConn.BeginTransaction(IsolationLevel.ReadCommitted,\"SampleTransaction\"); 

程序实例:

1.  SQL SERVER

     SqlConnection myConn=GetConn();
  myConn.Open();
  SqlCommand myComm=new SqlCommand();

  SqlTransaction myTran;                                           //创建一个事务
  myTran=myConn.BeginTransaction();                  //注重,SqlTransaction类无公开的构造函数

   //从此开始,基于该连接的数据操作都被认为是事务的一部分
   myComm.Connection=myConn;
   myComm.Transaction=myTran;
   myComm.CommandText=\"USE pubs\";
   myComm.ExecuteNonQuery();
   myComm.CommandText=\"UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE \\\'Pc%\\\'\";
   myComm.ExecuteNonQuery();

      myTran.Commit();              //提交事务

2.下面的示例创建一个 OracleConnection 和一个 OracleTransaction。它还演示了如何使用 BeginTransaction、Commit 和 Rollback 方式。

public void RunOracleTransaction(string myConnString)
{
   OracleConnection myConnection = new OracleConnection(myConnString);
   myConnection.Open();

   OracleCommand myCommand = myConnection.CreateCommand();
   OracleTransaction myTrans;

   // Start a local transaction
   myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
   // Assign transaction object for a pending local transaction
   myCommand.Transaction = myTrans;

   try
   {
     myCommand.CommandText = \"INSERT INTO Dept (DeptNo, Dname, Loc) values (50, \\\'TECHNOLOGY\\\', \\\'DENVER\\\')\";
     myCommand.ExecuteNonQuery();
  myCommand.CommandType= CommandType.StoredProcedure;
   myCommand.CommandText=\"prc_test\";
     myCommand.ExecuteNonQuery();
     myTrans.Commit();
     Console.WriteLine(\"Both records are written to database.\");
   }
   catch(Exception e)
   {
     myTrans.Rollback();
     Console.WriteLine(e.ToString());
     Console.WriteLine(\"Neither record was written to database.\");
   }
   finally
   {
     myConnection.Close();
   }
}





返回类别: 教程
上一教程: ASP.NET的Web controls(二)
下一教程: 黑客写出了针对.Net平台的反编译器

您可以阅读与".net中数据库事务机制"相关的教程:
· ASP.NET中数据库的操作初步(2)
· ASP.NET中数据库的操作初步(1)
· ASP.NET中数据库的操作初步(3)
· 使用COBOL.net访问数据库
· Dotnet总结(2)--访问ms sql server 数据库基类--2
    微笑服务 优质保证 索取样品