派生的 DataTable 没有 DataSet

Derived DataTable has no DataSet

我对 DataTableDataSet 有疑问。我们已经创建了我们自己的 ObservableDataTable,它可以创建一个 ObservableDataRow。我们使用 DataSet 创建 DataTable。为了创建自定义数据table,我们复制了由DataSet 创建的table 的架构。但现在我遇到了问题,我们的新 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

也许有人以前做过。非常感谢!

检查这个,你可以将你的数据表添加到数据集的表集合中,然后你的数据表就有了一个数据集:

// 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;