2013-10-22 57 views
1

我無法弄清楚如何用「」替換空白。因爲我在此代碼得到一個錯誤,則爲DBNull:DbNull強類型DataSet替換字符串linq

var subFields = permCollection 
    .Where(item=>fields.Contains(item.FBFieldName)) 
    .Select(a=>a.FBSubFieldName) 
    .ToList(); 

FBSubFieldName的一些值是空白,有些則不是。 任何想法?

+0

'blank'表示什麼和什麼是空? –

+0

The blank = null – RealityDysfunction

+0

我沒有說我得到了NullException。確切的錯誤是:表中的「FbSubFieldName的值」是DbNull。 – RealityDysfunction

回答

4

由於這是一個強類型DataTable如果您訪問一個可爲空的屬性併爲空,則會引發異常(默認情況下)。

你有一個自動生成的bool屬性,指示,如果是零,使用隨conditional operator(?)

var subFields = permCollection 
    .Where(item => fields.Contains(item.FBFieldName)) 
    .Select(item => item.IsFBSubFieldNameNull ? "" : item.FBSubFieldName) 
    .ToList(); 
+0

優秀,有效,謝謝先生! PS:它的IsFbSubFieldNameNull() – RealityDysfunction

1

可能是這樣的:

var subFields = permCollection 
    .Where(item=>item.FBSubFieldName!=null && fields.Contains(item.FBFieldName)) 
    .Select(a=>a.FBSubFieldName) 
    .ToList(); 

我相信在這裏,根據提供的代碼,FBSubFieldName是相同的「數據」,在Select查詢的領域。

如果這不是你所要求的,請澄清。

0

您需要的DBNull測試上的字段。 嘗試初學者到

var subFields = permCollection 
.Where(item=>!(item.FBSubFieldName is System.DBNull) && fields.Contains(item.FBFieldName)) 
.Select(a=>a.FBSubFieldName) 
.ToList();