7 个解决方案
#1
需要克隆一下这个数据行,然后再添加,在DataTable中数据行是不允许添加到的别的表的,如果有多个DataTable的行引用指向某一个数据行,那么会导致数据的不安全。
#2
那请问楼上,如果现在A表有10条,我只要其中5条该怎么做?先删除A表中我不要的5条再克隆?
#3
targetTable.Rows.Add( rowToCopy.ItemArray );
#4
例如从ta复制第5行到第10行到tb,你可以写(假设列名相同):
for (int i = 4; i < 9; i++)
{
DataRow dr = tb.NewRow();
for (int j = 0; j < ta.Columns.Count; j++)
dr[ta.Columns[j].ColumnName] = ta.Rows[i][j];
tb.Rows.Add(dr);
}
#5
DataTable.ImportRow()方法。
#6
如果两个表的列名还不同,那么不要写
dr[ta.Columns[j].ColumnName]
而要根据逻辑对应关系做好转换。
基本上,从“一个表复制到另一个表”要做一些“通用”设计功夫,不要想当然,性能不是唯一重要的事情。
dr[ta.Columns[j].ColumnName]
而要根据逻辑对应关系做好转换。
基本上,从“一个表复制到另一个表”要做一些“通用”设计功夫,不要想当然,性能不是唯一重要的事情。
#7
ImportRow也可以。但是ImportRow 比较复杂一些,它不用在简单地复制值,而是复制复杂的RowState的时候。
#1
需要克隆一下这个数据行,然后再添加,在DataTable中数据行是不允许添加到的别的表的,如果有多个DataTable的行引用指向某一个数据行,那么会导致数据的不安全。
#2
那请问楼上,如果现在A表有10条,我只要其中5条该怎么做?先删除A表中我不要的5条再克隆?
#3
targetTable.Rows.Add( rowToCopy.ItemArray );
#4
例如从ta复制第5行到第10行到tb,你可以写(假设列名相同):
for (int i = 4; i < 9; i++)
{
DataRow dr = tb.NewRow();
for (int j = 0; j < ta.Columns.Count; j++)
dr[ta.Columns[j].ColumnName] = ta.Rows[i][j];
tb.Rows.Add(dr);
}
#5
DataTable.ImportRow()方法。
#6
如果两个表的列名还不同,那么不要写
dr[ta.Columns[j].ColumnName]
而要根据逻辑对应关系做好转换。
基本上,从“一个表复制到另一个表”要做一些“通用”设计功夫,不要想当然,性能不是唯一重要的事情。
dr[ta.Columns[j].ColumnName]
而要根据逻辑对应关系做好转换。
基本上,从“一个表复制到另一个表”要做一些“通用”设计功夫,不要想当然,性能不是唯一重要的事情。
#7
ImportRow也可以。但是ImportRow 比较复杂一些,它不用在简单地复制值,而是复制复杂的RowState的时候。