2016-09-24 46 views
1

我有數據集中的表,當我嘗試獲取單元格值時,如果值爲空,我會得到異常。強鍵入異常 「表AI_PARTNERS中列Surname的值爲Db Null。」 當我嘗試打開從數據集中獲取單元格值

partnersDataSet.AI_PARTNERS [0] .SURNAME

如果是空我得到異常,不能做與空比較自從時間。

_partnerInfo.Surname = partnersDataSet.AI_PARTNERS[0].SURNAME 

如何獲取值或空字符串如果值爲null?

+0

這是類型化的DataSet,對不對?你在項目中有xsd文件? –

+0

是的,這是鍵入的數據集,我在項目中有xsd文件。 – user221074

回答

0

您可以隨時使用DataRow.IsNull方法重載的一個檢查你的屬性。另外,由於您使用的是鍵入的數據集,因此必須有一個名爲IsSURNAMENull()的生成方法。

但你可以自動獲得。在設計器中打開輸入數據集文件xsd,選擇SURNAME屬性,轉到屬性窗口並將NullValue屬性從(Throw exception)(默認值)更改爲(Null)(Empty)

參考:Annotating Typed DataSets

+0

它的工作,呃漢克你真是太棒了!老實說,當你寫評論時,你會幫助我。 – user221074

0

嘗試這樣 與DBNull.Value

if(partnersDataSet.Tables[0].Rows.Count>0) 
{ 
    if(!string.IsNullOrEmpty(partnersDataSet.AI_PARTNERS[0].SURNAME)) 
    { 
    if (partnersDataSet.AI_PARTNERS[0].SURNAME != System.DBNull.Value)) 
    { 
    _partnerInfo.Surname =partnersDataSet.AI_PARTNERS[0].SURNAME; 
    } 
    }  
} 
+0

我無法比較,當我打電話「partnersDataSet.AI_PARTNERS [0] .SURNAME」我得到異常,如果值爲空,這意味着如果條件是永遠不會工作,如果值null ... – user221074

+0

@ user221074現在更新 –