派生数据表没有数据集

本文关键字:数据集 数据表 派生 | 更新日期: 2023-09-27 18:14:09

我对DataTableDataSet有问题。我们已经创建了自己的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;