一步一个脚印
迷惑怀疑-培训创造-自己创造-发掘成熟

      一般来说,在C#对数据库程序设计时变量的类型要和数据库中的字段类型相对应,即需要做变量的数据类型与字段的数据类型映射(数据库中的数据类型和c#的数据类型的映射表),例如string类型对应与Varchar(char)类型。

      但是对于数据库中的Bit类型,就无法使用C#中的Boolean值进行对应,原因是Bit型会有三种状态(0,1,null)而Boolean型只能是(True,False),非真即假的状态让Boolean类型无法与数据库中的null对应起来,所以在使用Bit类型转换成C#类型是就需要使用自定义的“三值逻辑”,也就是自己设定一个struct类型。

      所以,以下是笔者在晚上找到并略微修改的实现“三值逻辑运算”的C#代码,该代码实现了三种状态(DBNull,False,True),和网上相关代码不同是将DBNull的值设为-1,而将False的值设置成0.笔者认为这样更符合数据库中Bit类型存储的规律。在数据库操作语句的时候:0代表False,1代表True,这更符合Bit类型在数据库中的值的存储方式。

      以下是代码部分:

 

Code

 

当然,可以根据该算法的基础上增加工厂模式,并扩展出比如“四值逻辑元素”等。

posted on 2009-02-24 15:13  ccjnet  阅读(827)  评论(0)    收藏  举报