转载出处:http://www.ezineasp.net/post/ASP-Net-Bind-GridView-to-DataTable.aspx

ASP.Net Bind GridView to DataTable

 
Updated on 17 Nov 2008,
Published on 03 Sep 2008
 
 

It’s not a difficult task in ASP.Net to bind GridView to DataTable. You can bind a GridView to DataTable in 3 easy steps. Create a DataTable, add data rows to the DataTable and last bind the DataTable to GridView to display the data in Tabular form. In the previous tutorial about How to Add New ASP.Net DataRow to DataTable we learnt how to create a DataTable and add a new row to the table. In this tutorial we will consider the same example to understand the DataTable and bind the GridView to DataTable created dynamically using C# code.

 

Step 1:
C# Code to Create ASP.Net DataTable

 

// Initialize a DataTable

DataTable myDataTable = new DataTable();

 

// Initialize DataColumn

DataColumn myDataColumn = new DataColumn();

 

// Add First DataColumn

// AllowDBNull property

myDataColumn.AllowDBNull = false;

 

// set AutoIncrement property to true

myDataColumn.AutoIncrement = true;

 

// set AutoIncrementSeed property equal to 1

myDataColumn.AutoIncrementSeed = 1;

 

// set AutoIncrementStep property equal to 1

myDataColumn.AutoIncrementStep = 1;

 

// set ColumnName property to specify the column name

myDataColumn.ColumnName = "auto_ID";

 

// set DataType property of the column as Integer

myDataColumn.DataType = System.Type.GetType("System.Int32");

 

// set Unique property of DataColumn to true to allow unqiue value for this column in each row

myDataColumn.Unique = true;

 

// Add and Create a first DataColumn

myDataTable.Columns.Add(myDataColumn);

 

 

 

// Add second DataColumn

// initialize a new instance of DataColumn to add another column with different properties.

myDataColumn = new DataColumn();

myDataColumn.ColumnName = "firstName";

 

// set DataType property of the column as String

myDataColumn.DataType = System.Type.GetType("System.String");

 

// Add and Create a Second DataColumn

myDataTable.Columns.Add(myDataColumn);

 

 

 

// initialize a new instance of DataColumn to add another column with different properties.

myDataColumn = new DataColumn();

myDataColumn.ColumnName = "lastName";

 

// set DataType property of the column as String

myDataColumn.DataType = System.Type.GetType("System.String");

 

// Add and Create a Third DataColumn

myDataTable.Columns.Add(myDataColumn);

 

 

 

Step 2:
C# Code to Add New Rows to ASP.Net DataTable

 

// create a new row using NewRow() function of DataTable.

// dataRow object will inherit the schema of myDataTable to create a new row

DataRow dataRow = myDataTable.NewRow();

dataRow["firstName"] = "John";

dataRow["lastName"] = "Smith";

 

// add new data row to the data table.

myDataTable.Rows.Add(dataRow);

 

 

// similarly adds the second row to the DataTable

dataRow = myDataTable.NewRow();

 

dataRow["firstName"] = "Will";

dataRow["lastName"] = "Smith";

myDataTable.Rows.Add(dataRow);

 

 

 

Step 3:
C# Code to bind ASP.Net GridView to DataTable

 

GridView1.DataSource = myDataTable;

GridView1.DataBind();

 

 

HTML Source Code for GridView bound to a DataTable

 

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">

 

<Columns>

 

<asp:BoundField DataField="auto_ID" HeaderText="Auto ID" />

 

<asp:BoundField DataField="firstName" HeaderText="First Name" />

 

<asp:BoundField DataField="lastName" HeaderText="Last Name" />

 

< /Columns>

 

< /asp:GridView>

 

Above code will generate the following output: