El problema es que un datarow solo puede tener un apuntador a un datatable, si ya esta utilizado entonces no lo puedes agregar a otra tabla,
Pero existe el metodo
LoadDataRow e ImportRow del datatable.
Código:
Dim dsItemxBodegaFinal AsNew DataSet
Dim idbodega AsInteger
Dim arrdr As DataRow()
Dim i AsInteger = 0
Dim condicion AsString
Dim dt As DataTable = New DataTable
dt.Columns.Add("IdBodega", GetType(Integer))
dt.Columns.Add("Nombre", GetType(String))
'Tienes que poner las mismas columnas que tu tabla original
'No es necesario el ciclo
'ForEach dr As DataRow In dsItemxBodega.Tables(0).Rowscondicion = "IdBodega= " + Convert.ToString(dr("IdBodega"))
arrdr = dsItemxBodega.Tables(0).Select(condicion)
'Dim dr3 As DataRow = dsItemxBodega.Tables(0).NewRow
'No se utiliza dr3
ForEach dr2 As DataRow In arrdrdt.LoadDataRow(dr2.ItemArray, True)
'dt.Rows.Add(dr2)
dsItemxBodega.Tables(0).Rows.Remove(dr2)
Next
dsItemxBodegaFinal.Tables.Add(dt)
dsItemxBodega.AcceptChanges()
'i = i + 1 Para que es la i?
'i == dsItemxBodega.Tables(0).Rows.count ??
'Next
Saludos!
Emmanuel.
La Paz Baja California Sur.