簡體   English   中英

如何正確連接 DataTable 的列的值?

[英]How to properly concatenate the values of Columns of a DataTable?

在下面的代碼中,我注意到A列和B列顯示數據。
但是,列CD為空。 為什么?

DataTable _dt = new DataTable();
DataColumn A=_dt.Columns.Add("A");
DataColumn B=_dt.Columns.Add("B");
DataColumn C=_dt.Columns.Add("C",typeof(String),"A+B");
DataColumn D=_dt.Columns.Add("D",typeof(String),"A+'!'+B");

DataRow _dr=_dt.NewRow();
_dr["A"]="A";
_dr["B"]="B";

Console.WriteLine(_dr["A"]);
Console.WriteLine(_dr["B"]);
Console.WriteLine(_dr["C"]); //Shows blank-why? Expected AB
Console.WriteLine(_dr["D"]); //Shows blank-why? Expected A!B

將 DataRow 添加到 DataTable,這是第一次評估Expression的時間:

這些是計算列。 +符號與數據類型 String 的列一起使用時,這些值被連接起來。

字符串運算符

要連接字符串,請使用 + 字符。 DataSet class 的 CaseSensitive 屬性的值確定字符串比較是否區分大小寫。 但是,您可以使用 DataTable class 的 CaseSensitive 屬性覆蓋該值。

DataRow _dr=_dt.NewRow();
_dr["A"]="A";
_dr["B"]="B";
_dt.Rows.Add(_dr);

注意,上面的四行可以寫成:

_dt.Rows.Add("A", "B");

結果當然是一樣的。 CD的值不包含在object[]數組中,而是由列的表達式生成。

現在應該是 output:

A
B
AB
A!B

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM