两个相同的记录不反应相同的方式

两个相同的记录不反应相同的方式

问题描述:

enter image description here两个相同的记录不反应相同的方式

我有一个数据如图图片。当我取回我的记录有记录 用于记录ID = 53不同的行为,当我有

myReader.IsDBNull(myReader.GetOrdinal("ExpirationByDate")) 

发送回真的,但2其余它发回假。我不知道如何检查任何想法表示赞赏

GetOrdinal返回给定的列名,并没有其他的列索引问题

。因此你的代码没有意义。

MSDN

GetOrdinal首先执行区分大小写的查找。如果失败,则会发生一次不区分大小写的搜索(使用数据库归类完成不区分大小写的比较 ),然后执行 秒。当文化特定的套管规则影响比较时,可能会出现意外结果 。对于 示例,在土耳其语中,以下示例产生了错误的结果 ,因为土耳其文件系统不使用语言套管 关于“文件”中字母'i'的规则。如果从零开始的列序号不 发现

你想要做reader.IsDBNull(myReader["ExpirationByDate"])的方法抛出 IndexOutOfRange例外?

我会做:

var value = myReader["ExpirationByDate"]; 
var myBool = value is DbNull ? DefaultSetting : (bool)value; 

恕我直言,这是更容易阅读。