在我的代码中,我有一个返回数据集的函数,但我无法更改它,所以我希望:
- 一个数据集可以包含另一个数据集吗?
- 或者数据表是否可以包含包含数据表的数据集
- 或者我可以获取一个通用列表并将其转换为数据表,然后将其添加到数据集中吗?
这有可能吗?
在我的代码中,我有一个返回数据集的函数,但我无法更改它,所以我希望:
这有可能吗?
这是您问题的答案
数据集将数据存储在断开连接的缓存中。数据集的结构类似于关系数据库的结构。它公开了表、行和列的分层对象模型。此外,它还包含为数据集定义的约束和关系。如果要在与数据源断开连接的情况下使用一组表和行,则可以使用数据集。
- DataSet 对象是支持断开连接的核心
- DataSet 是数据的内存驻留表示
- DataSet 表示一整套数据,包括相关的表、约束以及表之间的关系
- ADO.NET DataSet 包含由 DataTable 对象表示的零个或多个表的集合
这是MSDN 链接以获取更多信息
希望它会有所帮助
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;
}