-1
我有一個數據如圖圖片。當我取回我的記錄有記錄 用於記錄ID = 53不同的行爲,當我有
myReader.IsDBNull(myReader.GetOrdinal("ExpirationByDate"))
發送回真的,但2其餘它發回假。我不知道如何檢查任何想法表示讚賞
我有一個數據如圖圖片。當我取回我的記錄有記錄 用於記錄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;
恕我直言,這是更容易閱讀。