DataSet Class
The DataSet class is the concrete implementation of IDataSet in the
PocoDataSet.Data assembly. It is the root container for tabular data and
provides collections of tables and relations.
Tables are stored in a dictionary keyed by table name. Relations are stored as a list of
IDataRelation objects describing logical parent/child relationships between tables.
Namespace: PocoDataSet.Data
Assembly: PocoDataSet.Data.dll
public class DataSet : IDataSet
{
public string? Name { get; set; }
public IReadOnlyList<IDataRelation> Relations { get; set; } = new();
public IReadOnlyDictionary<string, IDataTable> Tables { get; set; } = new();
// Indexer
public IDataTable this[string tableName] { get; }
}
DataSet as the default implementation of IDataSet when constructing
data sets in application code.
Relations and Tables properties are initialized to empty collections,
so they are safe to use immediately after construction.
IDataSet rather than DataSet
directly to preserve abstraction.
Name property is optional and can be used to label the data set for debugging
or diagnostic output.
// 1. Create an empty data set
IDataSet dataSet = DataSetFactory.CreateDataSet();
dataSet.Name = "HumanResources";
// 2. Add a table
IDataTable departmentDataTable = dataSet.AddNewTable("Department");
departmentDataTable.AddColumn("Id", DataTypeNames.INT32);
departmentDataTable.AddColumn("Name", DataTypeNames.STRING);
// 3. Access tables through the Tables dictionary
IDataTable? table = null;
bool hasDepartment = dataSet.Tables.TryGetValue("Department", out table);
Table of Content POCO DataSet PocoDataSet.Data
Business Process Programming in .Net
© 2004–2026 Laskarzhevsky Software Inc.
Unless otherwise noted, the content of this website is licensed under the
Creative Commons Attribution 4.0 International License (CC BY 4.0).
Code examples are provided under the MIT License.
You are free to share and adapt the material provided that appropriate
credit is given and any modifications are clearly indicated.
The information provided on this website is for educational purposes only.
The author and publisher make no warranties regarding the completeness
or suitability of the information and are not responsible for any damages
resulting from its use.