代码之家  ›  专栏  ›  技术社区  ›  Craig Schwarze

ADO.NET:将数据表转换为数据行数组

  •  11
  • Craig Schwarze  · 技术社区  · 15 年前

    我正在使用ado.net和c,我想将datatable对象转换成一个datarows数组。做这件事的优雅方法是什么?

    4 回复  |  直到 8 年前
        1
  •  20
  •   Joel Etherton    15 年前

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

    答案是:

    DataRow[] rows = myDataTable.Select();
    
        2
  •  2
  •   Guido Zanon    15 年前

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

    你可以做到这一点:

    List<System.Data.DataRow> r = d.Rows.AsQueryable().OfType<System.Data.DataRow>().ToList();
    
        3
  •  1
  •   ksk    15 年前

    select()给您一个数据行数组。你可以用这个作为数组

    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函数。也许这也管用。

        4
  •  0
  •   dat3450    8 年前

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

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