Domanda

I want to copy all rows in old datatable (oldDT) to a new datatable (dt) using ImportRow method. But the new row doesn't have a same column with the old one. Here is my code:

foreach (DataRow dr in oldDT.Rows)
{
    MessageBox.Show(dr["tenant_no"].ToString()); //giving a correct result
    dt.ImportRow(dr);
    MessageBox.Show(dt.Rows[0]["tenant_no"].ToString()); //giving an error Column 'tenant_no' does not belong to table .
}

i try to use the answer C# simple way to copy or clone a DataRow? and here is my new code:

foreach (DataRow dr in oldDT.Rows)
{
    MessageBox.Show(dr["tenant_no"].ToString());
    DataRow newDR = oldDT.NewRow();
    newDR.ItemArray = dr.ItemArray.Clone() as object[];
    dt.Rows.Add(newDR); //giving an error "This row already belongs to another table."
    MessageBox.Show(dt.Rows[0]["tenant_no"].ToString());
}

Anyone can help me?

È stato utile?

Soluzione

Try this... this will work

 DataTable dt= new DataTable();
   dt= oldDT.Clone();
    for (int i=0;i < oldDT.Rows.Count; i++)
    {
        dt.ImportRow(dataTable.Rows[i]);
    }

Altri suggerimenti

You could use DataTable.Copy, if you are not locked into using the ImportRow :

Copies both the structure and data for this DataTable.

DataTable dt = oldDt.Copy();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top