Most of the times programmers fill the DataTable from database. This action fills the schema of the database table into the DataTable. We can bind data controls like GridView, DropdownList to such DataTable. But somtimes what happens is one needs to create a DataTable programmatically. Here I have put the simple method of creating DataTable programmatically in C#.
Update: Responding to comment from one of the readers, I have now posted how to create DataTable in c# with clickable column. As in this post, the DataTable has been bound to an asp.net GridView.
Create a DataTable instance
DataTable table = new DataTable();
Create 7 columns for this DataTable
DataColumn col1 = new DataColumn("ID");
DataColumn col2 = new DataColumn("Name");
DataColumn col3 = new DataColumn("Checked");
DataColumn col4 = new DataColumn("Description");
DataColumn col5 = new DataColumn("Price");
DataColumn col6 = new DataColumn("Brand");
DataColumn col7 = new DataColumn("Remarks");
Define DataType of the Columns
col1.DataType = System.Type.GetType("System.Int");
col2.DataType = System.Type.GetType("System.String");
col3.DataType = System.Type.GetType("System.Boolean");
col4.DataType = System.Type.GetType("System.String");
col5.DataType = System.Type.GetType("System.Double");
col6.DataType = System.Type.GetType("System.String");
col7.DataType = System.Type.GetType("System.String");
Add All These Columns into DataTable table
table.Columns.Add(col1);
table.Columns.Add(col2);
table.Columns.Add(col3);
table.Columns.Add(col4);
table.Columns.Add(col5);
table.Columns.Add(col6);
table.Columns.Add(col7);
Create a Row in the DataTable table
DataRow row = table.NewRow();
Fill All Columns with Data
row[col1] = 1100;
row[col2] = "Computer Set";
row[col3] = true;
row[col4] = "New computer set";
row[col5] = 32000.00
row[col6] = "NEW BRAND-1100";
row[col7] = "Purchased on July 30,2008";
Add the Row into DataTable
table.Rows.Add(row);
Want to bind this DataTable to a GridView?
GridView gvTest=new GridView();
gvTest.DataSource = table;
gvTest.DataBind();
You are done! Happy dot netting!!
Wednesday, July 30, 2008
Subscribe to:
Post Comments (Atom)
20 comments:
superb explanation to something that I am always forgetting.
thnks. I have to use two datatable, one to get data from a MySql query and the second one to change the datatype in some columns. The second datatable was made with your explanation. Thnks again.
can you make the rows clickable?
thanks I used your explanation.
Adalberto Montania
from asuncion Paraguay
Its nice! but if u explained for adding multiple rows in a data table ...it will be very useful to us...
Hi, i'm a newbie here. Is that possible if i want to store the data from the excel file into different datatable??
For example, there is 1 column that consists of 5 datarow in the excel file, i want to store them into different datatable.
First data in datatable1, second data in datatable2, etc. So that later i can merge them into a gridview.
Is that possible?
Regards,
Howyi
really nice help how can i catch value of row in label control from data table...............plz guide me
Great post
We can also submit our .net related article links on http://www.dotnettechy.com to increase traffic
col1.DataType = System.Type.GetType("System.Int");
will return a null.
Try using Int16, Int32 or Int64.
Nice post... its very helpfull... lol...
Now how to close this DataTable in C# as we can do in VB (table.close)
Superb Postt It help a lot. Awesome dude.
Awsome.. I will never forget this technique.
Bhaskar
that was great
thanx
very helpful explaination. but I want to add multiple rows in datatable and display it in gridview. How can I do it?
it is very useful code for me
thanks i was searching exactly for this..
If I put the code in my *aspx.cs file in protected void Page_Load(object sender, EventArgs e), how do I get the table to show up - in other words, what do I do in the *aspx file? This doesnt work:
Thanks for the help! Very Useful!!!!!
Excellent post , thanks
Post a Comment
Hope you liked this post. You can leave your message or you can put your valuable suggestions on this post here. Thanks for the sharing and cooperation!