我已经在DataTable中读取了一些数据(来自Excel文件),现在我想对其进行筛选,并将只包含特定列的数据复制到另一个表中!
DataTable格式:
some data
ColA|ColB|ColC
xxxx|xxxx|xxxx
some data
some data
表示与 ColA-ColC 无关的其他表数据
如何使用 xxxx 复制 ColA-ColC 到新 DataTable 中?
谢谢
System.Data.DataView view = new System.Data.DataView(yourOriginalTable);
System.Data.DataTable selected =
view.ToTable("Selected", false, "col1", "col2", "col6", "col7", "col3");
复制整个表格并删除您不需要的列。
DataTable copyDataTable;
copyDataTable = table.Copy();
copyDataTable.Columns.Remove("ColB");
或者int columnIndex = 1;//this will remove the second column
DataTable copyDataTable;
copyDataTable = table.Copy();
copyDataTable.Columns.RemoveAt(columnIndex);
foreach (DataRow dr in dataTable1.Rows) {
if (/* some condition */)
dataTable2.Rows.Add(dr.ItemArray);
}
使用感兴趣的列定义您的复制 DataTable。您可以循环源行的列,并使用以下示例代码将值设置为目标行:
public void IntegrateRow(DataRow p_RowCible, DataRow p_RowSource)
{
try
{
foreach (DataColumn v_Column in p_RowCible.Table.Columns)
{
string ColumnName = v_Column.ColumnName;
if (p_RowSource.Table.Columns.Contains(ColumnName))
{
p_RowCible[ColumnName] = p_RowSource[ColumnName];
}
}
}
catch (Exception e)
{
...
dtSource.AsEnumerable().All(row => { dtDestination.Rows.Add(); return true; });
DataColumn
数据复制到另一个 DataTable
的 DataColumn
中。假设这两个表拥有相同数量的行。int rowIdx = 0;
dtDestination.AsEnumerable().All(row => { row["colName"] = dtSource.Rows[rowIdx++]["colName"]; return true; });
在vb.net中进行相同的修复
Dim view As DataView = New DataView(TB) Dim selected As DataTable = view.ToTable("Selected", False, "id", "col1", "col2")
public DataTable CopyTable (DataTable TextFileTable)
{
DataTable tblFormat = new DataTable();
tblFormat.Columns.Add("ColumnA");
tblFormat.Columns.Add("ColumnB");
tblFormat.Columns.Add("ColumnC");
tblFormat.Columns.Add("ColumnD");
tblFormat.Columns.Add("ColumnE");
for (int i = 0; i < TextFileTable.Rows.Count; i++)
{
tblFormat.Rows.Add(new string[] { TextFileTable.Rows[i][0].ToString(), TextFileTable.Rows[i][1].ToString(),
TextFileTable.Rows[i][2].ToString(), TextFileTable.Rows[i][8].ToString(), TextFileTable.Rows[i][9].ToString() });
}
return tblFormat;
}
DataTable
中不存在xxx
列。 - Arshad