筛选数据表中的列

本文关键字:数据表 筛选 | 更新日期: 2023-09-27 18:34:44

我有一个包含多列的数据表。我想过滤我做的列:

newDatableName= OldDt.ToTable(false,"col1","col2");

现在假设,我想以 dyananamy 的方式指定列名,即将所有列名放在一个字符串中,然后 Do:

string colnames= "col1,col2";
 newDatableName= OldDt.ToTable(false,colnames);

我尝试了上述方法,但它不起作用。我什至尝试过:

string colname= "'"col1'",'"col2'"";

但它将列名字符串视为一列,并给出不存在此类列的错误。

任何帮助表示赞赏。

筛选数据表中的列

我想你正在使用DataView.ToTable方法(所以OldDT是一个DataView而不是DataTable(。
在这种情况下,您需要传递列名数组

string[] colnames = new string[] {"col1", "col2"};
newDatableName= OldDt.ToTable(false,colnames);

你可以使用Steve的答案,如果不喜欢定义一个新数组,试试这个:

string colnames="col1,col2"
newDatableName=OldDt.ToTable(colnames.Split(',');
DataTable.DefaultView.ToTable(bool, Params string[] ColumnNames);

上述方法基于现有DataView中的行创建并返回新DataTable

您必须为此函数传递两个参数。如果为 true,则返回的 DataTable 包含其所有列具有不同值的行。默认值为 false。一个字符串数组,其中包含要包含在返回的 DataTable 中的列名的列表。DataTable按照指定列在此数组中的显示顺序包含这些列。例如:

DataTable NewTable = dt.DefaultView.ToTable(false, "StartDate", "FinishDate", "ItemName", "AssigneeNames", "ProjectName", "PercentComplete");