2013-09-26 56 views
1

我有下面的代碼線的一個實例,DataTable;對象引用不設置爲一個對象

sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName").ToString(); 

這將返回

System.NullReferenceException;對象引用未設置爲對象的實例 。

我知道它爲什麼會返回這個異常,那是因爲該單元格中沒有任何東西。

我該如何正確處理?

+1

如果您指的是'Field'爲null,那麼在調用'ToString()'之前必須首先檢查null – musefan

回答

0

您無需致電.ToString()

.Field<string>("SiteName")轉換爲字符串,您不需要再次調用tostring。

sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName"); 

如果你的null值,那麼你可以不叫空對象的ToString方法,這將失敗。

0

如果已經檢查了_selectedindex = -1,在正確的範圍內這樣的正確的代碼:

sitetb.Text = (sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName")?? "").ToString(); 

它是這個短篇寫作:

var cellContetnt = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName"); 
if(cellCount == null) 
    sitetb.Text = ""; 
else 
    sitetb.Text = cellContent.ToString(); 
1

請嘗試

if(sitesformdataset!=null&&sitesformdataset.Tables["Sites"]!=null) 
{ 
sitetb.Text = sitesformdataset.Tables["Sites"].Rows[_selectedindex].Field<string>("SiteName").ToString(); 
} 
相關問題