2013-02-01 40 views
1

我有一個DataTable並有兩列'名字'和'姓氏'。DataColumn表達式連接列 - 返回空

我已經創建了一個datacolumn來從這兩列的concat值。這裏是我的代碼 -

DataColumn fullname = dt.Columns.Add("Full Name"); 
string fn = string.Format(string.Concat("'First Name - '+", "{0}", "+ ';<br />"), "FN"); 
string ln = string.Format(string.Concat("Last Name - '+", "{0}", "+ ';<br />"), "LN"); 
otherDetails.Expression = string.Concat(fn, ln); 

該代碼工作正常,連接兩個字段的值。但是,如果任何列值爲空,則表達式不起作用,並且返回爲空。

例如對於第五條記錄是如果第一個名字是'Tim',第二個名字是空的,我希望該值顯示爲'Tim'。但是對於那個記錄來說,這個表達式列的值是空的。

任何想法?

+0

'string.Concat(null,「2」)'將返回「2」,不是空字符串或空值。你能給更多「真實」的代碼嗎? –

+0

這是真實的代碼。實際的級聯處於表級別。表達'名字'+ FN不返回「名字 - 」。相反,它是空的。如果FN列的記錄具有NULL值。 – NLV

+0

哪個字符串常量? FN和LN是列名稱。 – NLV

回答

1

認爲你可能嘗試

string fn = string.Format(string.Concat("'First Name - '+", "{0}", "+ ';<br />"), "IsNull(FN, '')"); 
string ln = string.Format(string.Concat("Last Name - '+", "{0}", "+ ';<br />"), "IsNull(LN, '')"; 
+0

哇。剛纔發現一樣。謝謝! – NLV

1

試試這個語法的字符串實例:

string ln = string.Format(string.Concat("Last Name - '+", "{0}", "+ ';<br />"), "LN") ?? ""; 

這應該設置任何空爲空字符串。

+0

試過這個。不工作。我不明白這一點?實際上是評估的。 ?? ??必須在表達式中使用,對嗎? – NLV