ADO.NET:将DataTable转换为DataRows数组

时间:2010-02-03 04:17:20

标签: c# ado.net

我正在使用ADO.NET和C#,我想将DataTable对象转换为DataRows数组。这样做的优雅方式是什么?

4 个答案:

答案 0 :(得分:20)

我的第一个问题是为什么?请求毫无意义。

答案是:

DataRow[] rows = myDataTable.Select();

答案 1 :(得分:2)

实际上DataTable有一个名为Rows的属性,提供了执行此操作的方法。

你可以做到这一点:

List<System.Data.DataRow> r = d.Rows.AsQueryable().OfType<System.Data.DataRow>().ToList();

答案 2 :(得分:1)

DataTable.Select()为您提供了一个DataRows数组。您可以将其用作数组

Dim dt As New DataTable
Dim dr() As DataRow = dt.Select() 

如果你想要一个ArrayList,你可以

public ArrayList ConvertDT(ref DataTable dt)
{
        ArrayList converted = new ArrayList(dt.Rows.Count);
        foreach (DataRow row in dt.Rows)
        {
                converted.Add(row);
        }
        return converted;
}

我没有使用过dt.rows.CopyTo函数。也许这也有效。

答案 3 :(得分:0)

如果您希望将内容视为字符串,请使用以下代码:

string.Join(",", dataTable.AsEnumerable().SelectMany(row => row.ItemArray))