MyPDO 2.0 支持业务逻辑层事务 下载 http://free.ys168.com/?yu-nan88 文件 Trans1.cs using System; using NUnit.Framework; using MyPDO.DataAccess; namespace TestData { /// <summary> /// Trans1 的摘要说明。 /// </summary> [TestFixture] public class Trans1 { public Trans1() { // // TODO: 在此处添加构造函数逻辑 // DBA = new DataAccessor(); DBA.ConnectString = "data source=10.10.35.30;initial catalog=TradeCityT;persist security info=False;user id=sa;pwd=lee;"; //"Provider=SQLOLEDB;data source=10.10.25.63;initial catalog=Master;user id=zha;Password=123;"; DBA.ConnectType = MyPDO.ConnectType.SqlDataDriver; DBA.Open(); } private MyPDO.DataAccess.DataAccessor DBA; public MyPDO.DataAccess.DataAccessor Data { get{return DBA;} set{DBA = value;} } [SetUp] public void SetUp() { //this.ConnectString = "data source=10.10.35.37;initial catalog=TradeCityT;persist security info=False;user id=sa;pwd=123;"; //this.ConnectType = MyPDO.ConnectType.SqlDataDriver; Assert.IsTrue(DBA.IsOpen,"DBA closed"); } public int Insert() { string str = "INSERT INTO t_base_manager(ManagerCode, State2) values('TEST1',1)"; DBA.CommandText = str; int i = DBA.ExecuteCommand(false); Assert.IsTrue(i == 1); return i; } } }
文件 Trans2.cs using System; using NUnit.Framework; using MyPDO.DataAccess; namespace TestData { /// <summary> /// Trans1 的摘要说明。 /// </summary> [TestFixture] public class Trans2 { public Trans2() { // // TODO: 在此处添加构造函数逻辑 // DBA = new DataAccessor(); DBA.ConnectString = "data source=10.10.35.30;initial catalog=TradeCityT;persist security info=False;user id=sa;pwd=lee;"; //"Provider=SQLOLEDB;data source=10.10.25.63;initial catalog=Master;user id=zha;Password=123;"; DBA.ConnectType = MyPDO.ConnectType.SqlDataDriver; DBA.Open(); } private MyPDO.DataAccess.DataAccessor DBA; public MyPDO.DataAccess.DataAccessor Data { get{return DBA;} set{DBA = value;} } [SetUp] public void SetUp() { //this.ConnectString = "data source=10.10.35.37;initial catalog=TradeCityT;persist security info=False;user id=sa;pwd=123;"; //this.ConnectType = MyPDO.ConnectType.SqlDataDriver; Assert.IsTrue(DBA.IsOpen,"DBA closed"); } public int Insert() { //DBA.AutoCommit = false; string str = "INSERT INTO t_base_manager(ManagerCode, State) values('TEST2_1',1)"; DBA.CommandText = str; int i = this.insert(); if (i==1) { str = "INSERT INTO t_base_manager(ManagerCode, State) values('TEST2_2',1)"; DBA.CommandText = str; i += this.insert(); } Assert.IsTrue(2 ==i); //if(i==2) // DBA.CommitTrans(); //else // DBA.RollbackTrans(); return i; } private int insert() { int i = DBA.ExecuteCommand(false); Assert.IsTrue(i == 1); return i; } } }
文件 TestData.cs using System; using NUnit.Framework; using MyPDO.DataAccess; namespace TestData { /// <summary> /// TestData 的摘要说明。 /// </summary> [TestFixture] public class TestData { public TestData() { // // TODO: 在此处添加构造函数逻辑 // } private MyPDO.DataAccess.DataAccessor DBA;
[SetUp] public void SetUp() { //this.ConnectString = "data source=10.10.35.37;initial catalog=TradeCityT;persist security info=False;user id=sa;pwd=123;"; //this.ConnectType = MyPDO.ConnectType.SqlDataDriver; DBA = new DataAccessor(); DBA.ConnectString = "data source=10.10.35.30;initial catalog=TradeCityT;persist security info=False;user id=sa;pwd=lee;"; //"Provider=SQLOLEDB;data source=10.10.25.63;initial catalog=Master;user id=zha;Password=123;"; DBA.ConnectType = MyPDO.ConnectType.SqlDataDriver; DBA.Open(); Assert.IsTrue(DBA.IsOpen,"DBA closed"); }
[Test] public void Trans_Test() { string str = "INSERT INTO t_base_manager(ManagerCode, State) values('TEST3',1)"; DBA.AutoCommit = false; DBA.CommandText = str; int i = DBA.ExecuteCommand(false); Assert.IsTrue(i==1); if(i ==1) { Console.Write(i.ToString() + "\n"); Trans2 ts2 = new Trans2(); ts2.Data = DBA; i +=ts2.Insert(); Console.Write(i.ToString() + "\n"); Assert.IsTrue(i==3); if(i==3) { Trans1 ts1 = new Trans1(); ts1.Data = DBA; i += ts1.Insert(); Console.Write(i.ToString() + "\n"); } } if(i==4) DBA.CommitTrans(); else DBA.RollbackTrans(); Console.Write(i.ToString()+ "\n"); } } }

|