The solution creates, configures, and adds a column to a DataTable using four different techniques:
- Adds a DataColumn to a DataTable and configures the column
- Creates and configures a DataColumn and adds it to a DataTable
- Adds a DataColumn to a DataTable and configures it using the Add() method of the ColumnCollection of the DataTable exposed through the Columns property
- Creates multiple DataColumn objects, configures them, and adds them to the DataTable using the AddRange() method of the ColumnCollection of the DataTable
Code:
using System;
using System.Data;
namespace CreateDataColumnAddDataTable
{
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
// Add the column to the DataTable to create
DataColumn col1 = dt.Columns.Add();
// Configure the column — integer with a default = 0 that
// does not allow nulls
col1.ColumnName= “Column-1”;
col1.DataType = typeof(int);
col1.DefaultValue = 0;
col1.Unique = true;
col1.AllowDBNull = false;
// Create and configure the column
DataColumn col2 = new DataColumn();
// Configure the column — string with max length = 50
col2.ColumnName = “Column-2”;
col2.DataType = typeof(string);
col2.MaxLength = 50;
// Add the column to the DataTable
dt.Columns.Add(col2);
// Add a column directly using an overload of the Add()
// method of the DataTable.Columns collection — the column
// is a string with max length = 50
dt.Columns.Add(“Column-3”, typeof(string)).MaxLength = 50;
// Add multiple existing columns to the DataTable
DataColumn col4 = new DataColumn(“Column-4”);
// … configure column 4
DataColumn col5 = new DataColumn(“Column-5”, typeof(int));
// Add columns 4 and 5 to the DataTable
dt.Columns.AddRange(new DataColumn[] { col4, col5 });
// Output the columns in the DataTable to the console
Console.WriteLine(“DataTable has {0} DataColumns named:”,
dt.Columns.Count);
foreach (DataColumn col in dt.Columns)
Console.WriteLine(“\t{0}”, col.ColumnName);
Console.WriteLine(“\nPress any key to continue.”);
Console.ReadKey();
}
}
}
The DataColumn constructor has five overloads:
DataColumn() DataColumn(string columnName) DataColumn(string columnName, Type dataType) DataColumn(string columnName, Type dataType, string expression) DataColumn(string columnName, Type dataType, string expression, MappingType mappingType) ColumnName Name of the column to be created. DataType Column data type, from supported members of the Type class. Expression Expression used to create the column. MappingType Specifies how columns are mapped to elements or attributes when transformed to an XML document. The MappingType enumeration lets you specify Element, Attribute, SimpleContent, or Hidden.