当前位置:  开发笔记 > 编程语言 > 正文

将datarow数组转换为datatable的简单方法

如何解决《将datarow数组转换为datatable的简单方法》经验,为你挑选了5个好方法。

我想将DataRow数组转换为DataTable...最简单的方法是什么?



1> joe..:

对于.Net Framework 3.5+

DataTable dt = new DataTable();
DataRow[] dr = dt.Select("Your string");
DataTable dt1 = dr.CopyToDataTable();

但是如果数组中没有行,则可能导致错误,例如source不包含DataRows.因此,如果您决定使用此方法CopyToDataTable(),则应检查数组以确定它是否具有数据行.

if (dr.Length > 0)
    DataTable dt1 = dr.CopyToDataTable();

MSDN上提供的参考: DataTableExtensions.CopyToDataTable方法(IEnumerable)


这应该被标记为正确的答案,因为`copyToDataTable()`方法创建所选行的列的完美副本,而`datatable.ImportRow(row)`方法不
如果表中已有行,则此方法不好,因为这会替换已有的行.如果表空为开始就没关系.
只要.Net功能得到优化,我更喜欢这种方法.不要忘记在项目中添加对System.Data.DataSetExtensions的引用,这样你就不会沮丧地问自己为什么缺少这种方法(比如我)

2> Jay Riggs..:

为什么不通过你的DataRow数组进行迭代,并添加(使用DataRow.ImportRow,如果必要的话,得到的DataRow的副本),是这样的:

foreach (DataRow row in rowArray) {
   dataTable.ImportRow(row);
}

确保您的dataTable与DataRow阵列中的DataRows具有相同的架构.


很好 !但我建议在foreach之前克隆DataTable.它复制DataTable的格式:newDataTable = oldDataTable.clone();
提示:您的数据表必须具有创建的列,否则将无法正确填充。

3> Mitch Wheat..:
DataTable dt = new DataTable(); 

DataRow[] dr = (DataTable)dsData.Tables[0].Select("Some Criteria");

dt.Rows.Add(dr);


我已经尝试过了..错误发生在"输入数组长于此表中的列数"之类的内容中.

4> ilans..:

另一种方法是使用DataView

// Create a DataTable
DataTable table = new DataTable()
...

// Filter and Sort expressions
string expression = "[Birth Year] >= 1983"; 
string sortOrder = "[Birth Year] ASC";

// Create a DataView using the table as its source and the filter and sort expressions
DataView dv = new DataView(table, expression, sortOrder, DataViewRowState.CurrentRows);

// Convert the DataView to a DataTable
DataTable new_table = dv.ToTable("NewTableName");



5> Zolfaghari..:

简单的方法是:

// dtData is DataTable that contain data
DataTable dt = dtData.Select("Condition=1").CopyToDataTable();

// or existing typed DataTable dt
dt.Merge(dtData.Select("Condition=1").CopyToDataTable());

推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有