数据集可以包含其他对象的集合吗?

时间:2013-07-23 12:04:50

标签: c#

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

  1. 数据集可以包含其他数据集吗?
  2. 或者数据表包含的数据集包含数据表
  3. 或者我可以使用通用列表并将其转换为数据表然后添加 它到数据集?
  4. 这有可能吗?

2 个答案:

答案 0 :(得分:1)

以下是您的问题的答案

  

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

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

以下是MSDN Link以获取更多信息

希望它会有所帮助

答案 1 :(得分: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;
    }