C# 在 .NET 1.1 中将 DataView 转换为表(DataTable)

Posted

技术标签:

【中文标题】C# 在 .NET 1.1 中将 DataView 转换为表(DataTable)【英文标题】:C# Convert DataView to Table (DataTable) in .NET 1.1 【发布时间】:2017-10-30 18:01:36 【问题描述】:

我有一个设置了行过滤器的数据视图:

DataView dv = ds.Tables[0].DefaultView;

dv.RowFilter = "here my filter";

过滤数据后,我想将其转换为 DataTable。我知道这在 .NET 2.0 及更高版本中是可能的,使用它:

Datatable result  = dv.ToTable();

但是如何在 .NET 1.1 中做到这一点?

【问题讨论】:

出于好奇,还是使用 .net 1.1.. 你不是已经有一个数据表了吗:ds.Tables[0]。数据集由数据表组成。 该框架的源代码可用。乍一看,自己创建一个 ToTable 方法似乎并非不可能referencesource.microsoft.com/System.Data/… @too_cool 是的,它是一个遗留项目,将来会很快迁移。但是现在我需要做这个修改。 Chk this out 可能有帮助 【参考方案1】:

如何使用 Datatable Select 解决这个问题

DataTable dt = ds.Tables[0];
DataTable filterdt = dt.Clone(); //Available from .Net 1.1

//Datatable Select Available from .Net 1.1              
DataRow[] filterRows = dt.Select("here you filter"); 



 //Loop filterRows[] and import to filterdt Datatable

  foreach (DataRow filterRow in filterRows)
                filterdt.ImportRow(filterRow); //Datatable Import row Available from .Net 1.1

【讨论】:

【参考方案2】:

这在 .NET 1.1 中有效,因为 DataView 的枚举器只返回过滤后的行:

DataTable table = dv.Table.Clone();
foreach (DataRowView rowView in dv)
    table.ImportRow(rowView.Row);

【讨论】:

以上是关于C# 在 .NET 1.1 中将 DataView 转换为表(DataTable)的主要内容,如果未能解决你的问题,请参考以下文章

DataView 行过滤器表达式 C#

C#里dataview(),datagridview()等显示XML内容的问题

如何在 .Net / C# 中将日期转换为 HTTP 格式的日期

在 C# .net winforms 中将字典绑定到 ComboBox

在 C# ASP.net 中将文本框内容转换为 DateTime 格式时出错

如何在 C# Asp.net 中将 SELECT sql 查询结果保存在数组中