Adding DataColumn to a Dataset and DataTable


DataSet can be filled with data in multiple ways. One of them is to add data manually. The data can be added either to a new and empty DataSet or to an existing dataset, which already contains some data.

Now as all .Net languages are strongly typed, they need a clear and unambiguous specification of Data types to be matched with a Row of data. So, while adding data manually to data set, the DataSet and the DataTable should to be pared with the right column types for the dataset to accept the right type of data. The columns in a dataset is some what synonymous to the Columns in a Database. The class DataColumn is used for adding the Column Details or Type details on a DataSet’s DataTable. A DataSet contains a collection of DataTables which are used to hold the Rows of Data. This DataTable contains a collection of DataColumn, which resent the meta data of the table.

The DataTable also contains another collection called DataRow. Each DataRow resents a row which is similar to the Database tuple or row or record. But this may not contain all the rows in a table because, what a DataTable will contain is only the rows that are populated using the SELECT Query. And the SELECT Query may contain either all the fields in a table or few fields or a set of fields which are a mixture of data from two or more tables. Although this is the case, the DataRow can still be considered somewhat equal to a Database Row.

This article actually tries to explain how to add different DataColumn to the DataTable. The following descriptions contain code snippets which can be used for creating the DataColumn for some basic .Net types.

Creating an Integer Column:

The integer is a basic data type. This is resented in data bases with various names. Some databases have it as number, some as integer etc., An integer is considered to be of 4 bytes commonly. But it differs depending on various implementations. .Net considers it to be of 4 bytes.

The following code can create a DataColumn with support for adding integer data rows.

DataColumn dc = new DataColumn(“IntegerExample”,System.Type.GetType(“System.Int32″));
DataSetVariable.Tables["DataTableName"].Columns.Add(dc);

This column may also be converted into an auto-increment column by adding the following line while creating it.

dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;
dc.ReadOnly = true;

Creating a String DataColumn:

String is the most common data type which is supported extensively in .Net. This is a stark contrast when compared with the legacy C++ compilers. A string in .Net is considered as a Unicode string by default and is manipulated using System.String class.

The following code can create a DataColumn with support for adding string data rows.

	DataColumn dc = new DataColumn("StringExample",System.Type.GetType("System.String"));
	DataSetVariable.Tables["DataTableName"].Columns.Add(dc);

Creating a Boolean Column:

The code snippet which may be used for creating a Boolean column is

DataColumn dc = new DataColumn(“BooleanExample”,System.Type.GetType(“System.Boolean”));
DataSetVariable.Tables["DataTableName"].Columns.Add(dc);

Creating a Date Column:

The DateTime is a data type which contains both the date as well as the time. It is manipulated using the System.DateTime class in .Net.

	DataColumn dc = new DataColumn("DateExample",System.Type.GetType("System.DateTime"));
	DataSetVariable.Tables["DataTableName"].Columns.Add(dc);

The above samples are for some of the frequently used data types in creating columns for the DataTable. After adding this Meta data, the data can be added to the table as DataRow, which will contain the data for the above columns.

To find out more about the data types in .net read the Codersource.net article on .Net Data Types or MSDN article on data types.