两个相同的记录不反应相同的方式
问题描述:
我有一个数据如图图片。当我取回我的记录有记录 用于记录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;
恕我直言,这是更容易阅读。