-1

在我的代码中,我有一个返回数据集的函数,但我无法更改它,所以我希望:

  1. 一个数据集可以包含另一个数据集吗?
  2. 或者数据表是否可以包含包含数据表的数据集
  3. 或者我可以获取一个通用列表并将其转换为数据表,然后将其添加到数据集中吗?

这有可能吗?

4

2 回答 2

1

这是您问题的答案

数据集将数据存储在断开连接的缓存中。数据集的结构类似于关系数据库的结构。它公开了表、行和列的分层对象模型。此外,它还包含为数据集定义的约束和关系。如果要在与数据源断开连接的情况下使用一组表和行,则可以使用数据集。

  • DataSet 对象是支持断开连接的核心
  • DataSet 是数据的内存驻留表示
  • DataSet 表示一整套数据,包括相关的表、约束以及表之间的关系
  • ADO.NET DataSet 包含由 DataTable 对象表示的零个或多个表的集合

这是MSDN 链接以获取更多信息

希望它会有所帮助

于 2013-07-23T12:13:43.653 回答
1

1)不,在一个数据集中你只能放表和关系,你不能在里面放另一个数据集

2)不,Datatable 可以包含一些具有特定类型的列,但这不是一个好方法。

3)你可以使用这个:

    public static class Extensions 
    {
            public static DataTable ToDataTable<T>(this IList<T> data)
            {
                PropertyDescriptorCollection propriedades = TypeDescriptor.GetProperties(typeof(T));
                DataTable dtTabela = new DataTable();
                for (int i = 0; i < propriedades.Count; i++)
                {
                    PropertyDescriptor prop = propriedades[i];
                    dtTabela.Columns.Add(prop.Name, prop.PropertyType);
                }
                object[] objValores = new object[propriedades.Count];
                foreach (T item in data)
                {
                    for (int i = 0; i < objValores.Length; i++)
                {
                objValores[i] = propriedades[i].GetValue(item);
            }
            dtTabela.Rows.Add(objValores);
        }
        return dtTabela;
    }
于 2013-07-23T12:16:55.630 回答