Answered by:
how to add rows in datatable

Question
-
hi,
i am facing some problem with adding rows in datatable
datatable table already have some records(means its not empty)
i want add some other records(rows) dynamically in that table
how can i do that i used that
DataTabledtNew = new DataTable
();
DataColumn colFileRid = new DataColumn("Name", typeof(string
));
DataTable dt1 = new DataTable
();
//try
//{
if (dtNew == null
|| dtNew.Rows.Count == 0)
{
dtNew.Columns.Add(colFileRid);
DataRow
row = dtNew.NewRow();
row[colFileRid] = strFileRid;
dtNew.Rows.Add(row);
}
else
{
DataRow
row = dtNew.NewRow();
row[colFileRid] = strFileRid;
dtNew.Rows.Add(row);
}
dt1 = dtNew;
dtNew already have 5 records now i want to add a record at 6 position. i tried to do that but got some exception
"Column 'Name' does not belong to table ."
please help me
its urgent
thanks in advance
Tuesday, January 17, 2012 9:51 AM
Answers
-
Hi, Try the following
DataTable dtNew = new DataTable(); DataColumn colFileRid = new DataColumn("Name", typeof(string)); DataTable dt1 = new DataTable(); //try // { if (!(dtNew.Columns.Contains(colFileRid.ColumnName ))) dtNew.Columns.Add(colFileRid); if (dtNew == null) { DataRow row = dtNew.NewRow(); row[colFileRid] = strFileRid; dtNew.Rows.Add(row); } else { DataRow row = dtNew.NewRow(); row[colFileRid] = strFileRid; dtNew.Rows.Add(row); } dt1 = dtNew; }
If it solved your problem,Please click "Mark As Answer" on that post and "Mark as Helpful". Happy Programming!- Proposed as answer by Sarathi R Tuesday, January 17, 2012 3:16 PM
- Edited by Murugan A Tuesday, January 17, 2012 4:25 PM
- Marked as answer by Helen Zhou Friday, January 27, 2012 7:53 AM
Tuesday, January 17, 2012 11:17 AM -
Hi nitinsharma1983,
Two things need to be mentioned:
1. There's no need two datatables, just dtNew will do.
2. No need to use IF ELSE to identify if the table already have columns or not, the table will always have at least one column, isn't it? So adding column at first is OK.
Doing it like this:1. Create a new table dtNew with the name TableNew: DataTable dtNew = new DataTable("TableNew"); 2. Add columns for the datatable: (4 columns for example) dtNew.Columns.Add("Code", typeof(string)); dtNew.Columns.Add("Material Type", typeof(string)); dtNew.Columns.Add("Material Name", typeof(string)); dtNew.Columns.Add("Amount Required", typeof(decimal)); 3. Add rows for the table, each row has 4 fields filled: dtNew.Rows.Add(new object[] {"MKL001", "MTYP01", "Zinc", "10.23"}); dtNew.Rows.Add(new object[] {"MKL002", "MTXP04", "Copper", "0.89"}); dtNew.Rows.Add(new object[] {"MKL003", "MTCP05", "Aluminum", "1.23"}); dtNew.Rows.Add(new object[] {"MKL004", "MTTG07", "Magnesium", "11.23"});
Helen Zhou [MSFT]
MSDN Community Support | Feedback to us
- Marked as answer by Helen Zhou Friday, January 27, 2012 7:53 AM
Tuesday, January 24, 2012 2:54 AM
All replies
-
Hi, Try the following
DataTable dtNew = new DataTable(); DataColumn colFileRid = new DataColumn("Name", typeof(string)); DataTable dt1 = new DataTable(); //try // { if (!(dtNew.Columns.Contains(colFileRid.ColumnName ))) dtNew.Columns.Add(colFileRid); if (dtNew == null) { DataRow row = dtNew.NewRow(); row[colFileRid] = strFileRid; dtNew.Rows.Add(row); } else { DataRow row = dtNew.NewRow(); row[colFileRid] = strFileRid; dtNew.Rows.Add(row); } dt1 = dtNew; }
If it solved your problem,Please click "Mark As Answer" on that post and "Mark as Helpful". Happy Programming!- Proposed as answer by Sarathi R Tuesday, January 17, 2012 3:16 PM
- Edited by Murugan A Tuesday, January 17, 2012 4:25 PM
- Marked as answer by Helen Zhou Friday, January 27, 2012 7:53 AM
Tuesday, January 17, 2012 11:17 AM -
> datatable table already have some records(means its not empty) i want add some other records(rows) dynamically in that table how can i do that
var dt = new DataTable(); dt.Columns.Add("Name", typeof(string)); ... if (dt.Rows.Count == 0) dt.Rows.Add("test");
Tuesday, January 17, 2012 11:27 AM -
You are unnecessarily making the things complex. You can simply create a new row and add it to table. For example, suppose below is the original table,
DataTable dtNew = new DataTable(); DataColumn colFileRid = new DataColumn("Name", typeof(string)); dtNew.Columns.Add(colFileRid); DataRow row = dtNew.NewRow(); row[colFileRid] = strFileRid; dtNew.Rows.Add(row);
Now, if you want to add new row into it simply you can do as,
DataRow row = dtNew.NewRow(); row[colFileRid] = strFileRid; dtNew.Rows.Add(row);
On the other hand, if you are not sure whether the table has any columns in it, you can do it as below,
if (dtNew == null || !dtNew.Columns.Contains("Name")) { dtNew = new DataTable(); dtNew.Columns.Add(colFileRid); } DataRow row = dtNew.NewRow(); row[colFileRid] = "strFileRid"; dtNew.Rows.Add(row);
I hope this helps you.
Please mark this post as answer if it solved your problem. Happy Programming!Tuesday, January 17, 2012 12:34 PM -
hi
if dtnew is you datatable means,
you may create new row from the instance itself ( dtnew) such as
DataRow dr=dtnew.NewRow ;
dtnew.add(dr);
By Country SnailTuesday, January 17, 2012 3:16 PM -
Hi nitinsharma1983,
Two things need to be mentioned:
1. There's no need two datatables, just dtNew will do.
2. No need to use IF ELSE to identify if the table already have columns or not, the table will always have at least one column, isn't it? So adding column at first is OK.
Doing it like this:1. Create a new table dtNew with the name TableNew: DataTable dtNew = new DataTable("TableNew"); 2. Add columns for the datatable: (4 columns for example) dtNew.Columns.Add("Code", typeof(string)); dtNew.Columns.Add("Material Type", typeof(string)); dtNew.Columns.Add("Material Name", typeof(string)); dtNew.Columns.Add("Amount Required", typeof(decimal)); 3. Add rows for the table, each row has 4 fields filled: dtNew.Rows.Add(new object[] {"MKL001", "MTYP01", "Zinc", "10.23"}); dtNew.Rows.Add(new object[] {"MKL002", "MTXP04", "Copper", "0.89"}); dtNew.Rows.Add(new object[] {"MKL003", "MTCP05", "Aluminum", "1.23"}); dtNew.Rows.Add(new object[] {"MKL004", "MTTG07", "Magnesium", "11.23"});
Helen Zhou [MSFT]
MSDN Community Support | Feedback to us
- Marked as answer by Helen Zhou Friday, January 27, 2012 7:53 AM
Tuesday, January 24, 2012 2:54 AM