for (int i = 0i Headdt.Rows.Counti++){
DataRow [] rows = Headdt.Select()
DataTable dt = new DataTable()
dt = rows[i].Table.Clone()
foreach (DataRow row in rows){
dt.Rows.Add(row)// 将DataRow 添加到DataTable 中
//报错 该行已经属于另一个表。}}
求解啊。。。
------解决方案--------------------------------------------------------
datarow 如果要添加到 datatable 必须和 Datatable 使用同一个 schama,否则只能用ImportRow
要获得同一架构的row 用:
------解决方案--------------------------------------------------------
你如果是为了复制数据,两行就搞定了C# code
DataTable dt = new DataTable()
dt=Headdt.Select().CopyToDataTable()
------解决方案--------------------------------------------------------
LZ 只需要改成这样就好了,测试过了。
foreach (DataRow row in rows){
dt.Rows.Add(row.ItemArray)}
------解决方案--------------------------------------------------------C# code
datatable dt=Headdt.clone //创建一个DataTable dt,字段结构复制自Headdt
dt.rows.add(Headdt.select( 找到这行记录的条件 )(0).itemarray) //在dt 中添加一行,
这行的值从Headdt 中查询出来,( 找到这行记录的条件 )这个部分可能类似于 Id=3
------解决方案--------------------------------------------------------
很明显,那个row 已经属于rows 了,所以你只要重新创建一个datarow 类型的变量,同时把
row 的值赋给这个新建变量,再利用add(新建变量)就行了
这种情况下可以使用table.ImportRow(Newrow)
两个表的数据结构需要一样。C# code
DataTable dt1
DataTable dt2
DataRow row = dt1.Rows[X]
dt2.Rows.Add(row)
2008-12-04 01:35 推荐: 0 次
苯办法了。
C# code
DataRow row2 = dataTable2.NewRow()
for(int k = 0k <row1.Table.Columns.Count)
{
row2[k] = row1[k] // row1是dataTable1的一行
}
dataTable2.Rows.Add(row2)
2008-12-04 01:35 推荐: 0 次
C# code
DataTable dt = new DataTable()
dr=所要添加到dt的DataRow。
dt.Rows.Add(dr.ItemArray)
在表中列和行的添加和删除本节主要介绍DataColumn对象和DataRow对象,通过它们来说明在表中列与行的添加和删除。它们均不能单独存在,而是作为DataTable集合的两个元素存在。下面通过代码进行说明。
DataTable dt = new DataTable("t1")DataColumn dc = new DataColumn()dc.DataType = System.Type.GetType("System.String")dc.ColumnName = "Name"dt.Columns.Add(dc)DataRow drdr= dt.NewRow()dr["Name"] = "weiyi"dt.Rows.Add(dr)dr = dt.NewRow()dr["Name"] = "lirong"dt.Rows.Add(dr)dt.Rows.RemoveAt(0)dt.Columns.RemoveAt(0)
以上代码主要实现为创建完毕的DataTable添加一个“Name”列,并为该列的前两行分别添加元素。
代码解释如下所述。
首先是创建DataTable对象。
DataTable dt = new DataTable("t1")
然后创建DataColumn对象,并设置列名和列的类型,接着将列添加到DataTable中,如下所示。
DataColumn dc = new DataColumn()//创建列对象dc.DataType = System.Type.GetType("System.String") //设置列的类型dc.ColumnName = "Name" //设置列名 dt.Columns.Add(dc) //将列添加到DataTable中
创建完列后,应该为列进行赋值,这时需要用到DataRow对象,如下所示。
DataRow dr = dt.NewRow()
这里NewRow()表示表的新行,然后分别添加了两个行元素,最后还应该将新添加的行添加到DataTable中,如下所示。
dr["Name"] = "weiyi"dt.Rows.Add(dr)dr = dt.NewRow()dr["Name"] = "lirong"dt.Rows.Add(dr)
行与列的删除和DataTable一样,同样支持三种方法,如下所示。
dt.Rows.Clear()//删除所有行dt.Rows.RemoveAt(0) //删除第一行 dt.Rows.Remove(row)//删除指定行dt.Columns.Clear() //删除所有列 dt.Columns.RemoveAt(0) //删除第一列dt.Columns.Remove(column) //删除指定列
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)