琐碎

Posted on 2012-01-30 17:31  平静河水  阅读(157)  评论(0)    收藏  举报

========可空值类型(nullable value type

System.Nullable<int> myNullableInteger=null;

myNullableInteger=1;

if(myNullableInteger!=null)

{

      Console.WriteLine(myNullableInteger.Value);

}

语法:System.Nullable<int> myNullableInteger;

可以简化为:

Int? myNullableInteger;

-----将空值类型的值赋值给普通值类型

Int? myNullableInteger=null;

Int myInteger=myNullableInteger;

Int? myNullableInteger=null;

Int myInteger=myNullableInteger.Value;

以上两种写法都是错误的

可以用System.Nullable<T>.HasValue属性判断一个可空值类型是否被赋过一个类型为T的有效值:

Int? myNullableInteger=null;

If(myNullableInteger.HasValue)

{

      Int myInteger=myNullableInteger.Value;

}

另外一种方法:

Int? myNullableInteger=null;

Int myInteger=myNullableInteger ?? -1;

如果不为空就被赋为myNullableInteger,否则为-1;

 

=============轻量级事务管理器(system.Transactions.TransactionManager

-------显示使用System.Transactions.CommittableTransaction类

CommitableTransaction    transaction=new    CommittableTransaction();

Using(SqlConnection  myConnection=new   SqlConnection(myConnectionString))

{

           myConnection.Open();

           myConnection.EnlistTransaction(tx);

           //Do  transactional  work

           ……

           //Commit     the  transaction;

           Transaction.Close();

}

隐式的方法会使用System.Transactions.TransactionScope类

Using(TransactionScope    scope=new TransactionScope())

{

           //Do  transactional   work;

           //……

           //没有错误,就提交事务

           Scope.Complete();

}

在上例中using块执行的代码会隐式的包含在一个事务中

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3