派生数据表没有数据集
本文关键字:数据集 数据表 派生 | 更新日期: 2023-09-27 18:14:09
我对DataTable
和DataSet
有问题。我们已经创建了自己的ObservableDataTable
,它可以创建ObservableDataRow
。为了创建DataTable,我们使用DataSet
。为了创建自定义数据表,我们复制由DataSet
创建的表的模式。但现在我有问题,我们的新DataTable
没有DataSet
。这是我们创建数据的方式:
public class ObservableDataTable : DataTable
{
/// <summary>
/// Initializes a new instance of the System.Data.DataTable class with no arguments.
/// </summary>
public ObservableDataTable() : base()
{
}
/// <summary>
/// Create datatable from existing table and copy schema
/// </summary>
/// <param name="table">Table which contains a schema to copy</param>
public ObservableDataTable(DataTable table) : base()
{
using (MemoryStream stream = new MemoryStream())
{
// Get xml schema for copy purpose
table.WriteXmlSchema(stream);
stream.Position = 0;
this.ReadXmlSchema(stream);
}
}
}
创建实例:
DbDataAdapter adapter = GetAdapter();
endOfResult = false;
command.Connection = connection;
countCommand.Connection = connection;
adapter.SelectCommand = command;
currentDataSet = new DataSet();
adapter.FillSchema(currentDataSet, SchemaType.Source, "ResultTable");
resultTable = new ObservableDataTable(currentDataSet.Tables["ResultTable"]);
observableCollection = new RadObservableCollection<ObservableDataRow>();
如何将数据集分配给派生的DataTable
?
也许以前有人这样做过。非常感谢!
选中此选项,您可以将数据表添加到数据集的tables集合中,然后您的数据表拥有一个数据集:
// Your code here
resultTable = new ObservableDataTable(currentDataSet.Tables["ResultTable"]);
DataSet ds = new DataSet();
ds.Tables.Add(resultTable);
// Now your datatable have dataset :
int tableCount = resultTable.DataSet.Tables.Count;