7.2 Working with Columns

7.2 Working with Columns

The schema for a table is defined by the columns in the table and the constraints on those columns. Columns belonging to the DataTable are stored as DataColumn objects in a DataColumnCollection object and are accessed through the Columns property of the DataTable . This section examines some methods and properties of the DataColumnCollection .

There are two methods that can add a column to a table. The Add( ) method optionally takes arguments that specify the name , type, and expression of the column to be added. An existing column can be added by passing a reference to an existing column. If no arguments are passed, the default names Column1 , Column2 , Column3 , and so on are assigned to the new columns. The following examples show how to create columns within the table:

 // adding a column using a reference to an existing column DataColumn col = new DataColumn("MyColumn, typeof(System.Int32)); dt.Columns.Add(col);   // adding and creating a column in the same statement dt.Columns.Add("MyColumn", typeof(System.Int32)); 

The second method for adding columns is the AddRange( ) method, which allows more than one column stored in a DataColumn array to be added to the table in a single statement, as shown in the following example:

 DataTable dt = new DataTable("MyTable"); // create and add two columns to the DataColumn array DataColumn[] dca = new DataColumn[]     {new DataColumn("Col1", typeof(System.Int32)),     new DataColumn("Col2", typeof(System.Int32))}; // add the columns in the array to the table dt.Columns.AddRange(dca); 

There are several properties and methods that interrogate the collection of columns within a table. The Count property returns the number of columns in a table:

 Int32 colCount = dt.Columns.Count; 

The Contains( ) method returns a value indicating whether a column with a specified name exists in the collection. The method takes a String argument containing the column name:

 Boolean colExists = dt.Columns.Exists("MyColumn"); 

The IndexOf( ) method returns the zero-based index of a column with a specified name within the collection. The method returns the index if the specified column exists or -1 if the column doesn't exist in the collection. The method takes a single argument containing the column name.

 Int32 colIndex = dt.Columns.IndexOf("MyColumn"); 

The Remove( ) , RemoveAt( ) , and Clear( ) methods remove columns from the DataSet . The Remove( ) method takes an argument that specifies either a column name or a reference to the column to be removed, as shown in the following example:

 // remove a column by specifying the name of the column dt.Columns.Remove("MyColumn") // remove a column by specifying a reference to the column DataColumn col = new DataColumn("MyColumn"); dt.Columns.Add(col); // ... do some work dt.Columns.Remove(col); 

The RemoveAt( ) method removes a column with a specified column index from the collection as shown in the following example:

 // remove the first column from the collection dt.Columns.RemoveAt(0); 

The Clear( ) method removes all columns from the column collection:


ADO. NET in a Nutshell
ADO.NET in a Nutshell
ISBN: 0596003617
EAN: 2147483647
Year: 2005
Pages: 415

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net