Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between rows.add and importRow

When adding a row to a datatable in vb.net, what is the difference between rows.add and importRow?

Dim dt As DataTable
Dim dr As DataRow

'Add row this way...
dt.rows.add(dr)

'or this way.
dt.importRow(dr)
like image 986
Urbycoz Avatar asked Feb 28 '11 09:02

Urbycoz


2 Answers

both do same functionality adding row to datatable but the main difference is

    DataTable dt1=new DataTable();
    DataRow dr1=dt1.NewRow();
    DataTable dt2=new DataTable();
    dt2.Rows.Add(dr1); // will give you error already dr1 belongs to another datatable in that                              //case you can do like this
    dt2.ImportRow(dr1); // safe
    dt1.Rows.Add(dr1); // safe as dr1 Row belongs to DataTable1 so no exception raise

hope that will give you an idea..

like image 186
Rudrik Avatar answered Nov 14 '22 06:11

Rudrik


The suggested answer is incorrect. The MSDN article below shows that dt2.ImportRow(dr1) will NOT import dr1. This is because it is in a detached state. Also dt2 has not schema.

http://msdn.microsoft.com/en-us/library/system.data.datatable.importrow.aspx

like image 2
user3617881 Avatar answered Nov 14 '22 04:11

user3617881