我正在從SQL表中讀取一個位值,並將其轉換爲布爾值以映射到布爾模型值。如何解決位值上的IndexOutOfRangeException?
但是,當我讀回IsPDLChecked
位字段並初始化爲false時,我得到一個index out of range exception
。
我擡頭異常的定義,我不知道爲什麼值超出範圍,由於它是初始化用假值,即0
。所以這不是一個負範圍值。
問:
爲什麼我會得到一個IndexOutOfRange exception
雖然位值被讀回被轉換爲bool和init假?
代碼:
模型 -
public partial class EmailContact
{
public int ContactID { get; set; }
public bool IsPDLChecked { get; set; }
public string ContactDisplayName { get; set; }
public string ContactEmailAddress { get; set; }
}
數據讀取器片段 -
while (dataReader.Read())
{
statusList.Add(new EmailContact(dataReader["IsPDLChecked"] as bool? ?? false,dataReader["ContactDisplayName"].ToString(), dataReader["ContactEmailAddress"].ToString()));
}
錯誤細節:
System.IndexOutOfRangeException被抓住
的HResult = -2146233080
消息= IsPDLChecked
源= System.Data
堆棧跟蹤:在System.Data.ProviderBase.FieldNameLookup.GetOrdinal(字符串fieldName的)
在系統.Data.SqlClient.SqlDataReader.GetOrdinal(字符串名稱)
在System.Data.SqlClient.SqlDataReader.get_Item(字符串名稱)
DB模式:(我也注意到了 「CHARACTER_MAX_LENGTH」 列設置爲null在此):
DB值:(IsPDLChecked有一個值)