Get all DataColumns name from DataTable
.NET framework's DataTable represents one table of in-memory data. The DataTable class exists in the System.Data namespace. The DataTable Columns property allows us to get the collection of columns that belong to this table.
DataTable Columns property value type is System.Data.DataColumnCollection which represents a DataColumnCollection that contains the collection of DataColumn objects for the table. If DataTable contains no DataColumn objects, then this property returns an empty collection.
.NET framework's DataColumnCollection class represents a collection of DataColumn objects for a DataTable. DataColumnCollection determines the schema of a table by defining the data type of each column.
We can loop through a DataTable's DataColumnCollection to get all DataColumn's names from the DataTable. In the below example code, we applied a foreach loop through the DataColumnCollection to get all column names in a specified table.
The following ADO.NET C# example code demonstrates to us how can we get all DataColumn names from a DatTable programmatically at run time in an ASP.NET application.
DataColumnListFromDataTable.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 dc1 = new DataColumn();
dc1.ColumnName = "BookID";
dc1.DataType = typeof(int);
dc1.AllowDBNull = false;
DataColumn dc2 = new DataColumn();
dc2.ColumnName = "BookName";
dc2.DataType = typeof(string);
dc2.MaxLength = 100;
DataColumn dc3 = new DataColumn();
dc3.ColumnName = "Author";
dc3.DataType = typeof(string);
dc3.MaxLength = 50;
dt.Columns.AddRange(new DataColumn[] { dc1, dc2,dc3 });
dt.Rows.Add(new object[] { "1", "Droid 2: The Missing Manual", "Preston Gralla" });
dt.Rows.Add(new object[] { "2", "Building Android Apps with HTML, CSS, and JavaScript", "Jonathan Stark" });
dt.Rows.Add(new object[] { "3", "Learning the iOS 4 SDK for JavaScript Programmers", "Danny Goodman" });
GridView1.DataSource = dt;
GridView1.DataBind();
Label1.Text = "<b>Columns in DataTable....</b><br />";
foreach (DataColumn dc in dt.Columns)
{
Label1.Text += dc.ColumnName + "<br />";
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Using foreach loop - How to get all DataColumn name from DataTable in ado.net</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<h2 style="color:DarkBlue; font-style:italic;">
Using foreach loop - How to get all DataColumn
<br /> name from DataTable programmatically 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="DarkSeaGreen"
RowStyle-BackColor="BurlyWood"
AlternatingRowStyle-BackColor="SandyBrown"
>
</asp:GridView>
<br />
<asp:Label
ID="Label1"
runat="server"
Font-Size="Large"
ForeColor="OrangeRed"
>
</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>