c# - How to count columns in a DataTable

Count columns in a DataTable
The DataTable class represents one table of in-memory data. The DataTable objects are conditionally case-sensitive. To create a DataTable programmatically the asp.net developers must first define its schema by adding DataColumn objects to the DataColumnCollection. To add rows to a DataTable, the developers must first use the NewRow() method to return a new DataRow object. The DataTable also contains a collection of Constraint objects that can be used to ensure the integrity of the data.

The following asp.net c# tutorial code demonstrates how we can count columns in a DataTable. So we have to count the DataColumns within a DataTable instance. Here we used the DataTable class Columns property to get its columns collection as a DataColumnCollection object. Then we used DataColumnCollection’s Count property to count the columns within the columns collections.

The DataTable class Columns property gets the collection of columns that belong to this table. The Columns property value is a DataColumnCollection that contains the collection of DataColumn objects for the table. An empty collection is returned if no DataColumn objects exist.

The DataColumnCollection class represents a collection of DataColumn objects for a DataTable. The DataColumnCollection Count property gets the total number of elements in a collection. The DataColumnCollection Count property is inherited from InternalDataCollectionBase. The Count property returns an Int32 which is the total number of elements in a collection.

So finally, using the DataTable Columns property the asp.net developers can get the DataColumnCollection object. And the DataColumnCollection class Count property allows the developers to count the columns within the specified DataTable.
CountDataColumnInDataTable.aspx

<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Data" %>

<!DOCTYPE html>
<script runat="server">
    void Button1_Click(object sender, System.EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.TableName = "Books";

        DataColumn dc = new DataColumn();
        dc.ColumnName = "BookID";
        dc.DataType = typeof(int);
        dc.AllowDBNull = false;
        dc.Unique = true;

        DataColumn dc2 = new DataColumn();
        dc2.ColumnName = "BookName";
        dc2.DataType = typeof(string);

        DataColumn dc3 = new DataColumn();
        dc3.ColumnName = "Author";
        dc3.DataType = typeof(string);

        dt.Columns.AddRange(new DataColumn[] {dc,dc2,dc3});

        dt.Rows.Add(new object[] { "1", "Learning Flash CS4 Professional", "Rich Shupe" });
        dt.Rows.Add(new object[] { "2", "3D Game-Based Filmmaking: The Art of Machinima", "Paul Marino" });
        dt.Rows.Add(new object[] { "3", "Flash CS4: The Missing Manual", "Chris Grover" });
        
        GridView1.DataSource = dt;
        GridView1.DataBind();

        //this line count the total DataColumn in DataTable
        int totalColumns = dt.Columns.Count;
        Label1.Text = "Number of DataColumn exists in DataTable? = " + totalColumns;
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>How to get the total number of DataColumn in DataTable in ado.net</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h2 style="color:DarkBlue; font-style:italic;">
            Using Count Property - How to get the total
            <br /> number of DataColumn in DataTable in ado.net
        </h2>
        <hr width="500" align="left" color="CornFlowerBlue" />
        <asp:GridView 
            ID="GridView1"
            runat="server"
            BorderColor="Snow"
            ForeColor="Snow"
            Width="525"
            HeaderStyle-BackColor="SlateBlue"
            RowStyle-BackColor="DarkGray"
            AlternatingRowStyle-BackColor="DimGray"
            >
        </asp:GridView>
        <br /><br />
        <asp:Label
             ID="Label1"
             runat="server"
             Font-Size="Large"
             ForeColor="IndianRed"
             >
        </asp:Label>
        <br /><br />
        <asp:Button 
            ID="Button1"
            runat="server"
            OnClick="Button1_Click"
            Text="Populate GridView"
            Height="45"
            Font-Bold="true"
            ForeColor="DarkBlue"
            />
    </div>
    </form>
</body>
</html>
More c# examples