將DataTable一行放入另外一個DataTable中(筆記)

概述

從一個DataTable中取一行放到另外一個DataTable裏報錯: 該行已經屬於另外一個表。數組

第一種方法:

DataTable dt = new DataTable();
dt = ds.Tables["All"].Clone();//克隆All的結構傳遞給dt
DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //經過條件獲得符合條件的行
for(int i=0;i<dr.Length;i++)
{
    //將數組元素加入表...
    dt.Rows.Add(dr[i]);//出錯提示爲:該行已經屬於另外一個表
}
// 修改後
DataTable dt = new DataTable();
dt = ds.Tables["All"].Clone();//克隆All的結構傳遞給dt
DataRow[] dr=this.dataSet31.Tables["Product"].Select("bc=1"); //經過條件獲得符合條件的行
for(int i=0;i<dr.Length;i++)
{
    //將數組元素加入表...
    dt.Rows.Add(dr[i].ItemArray);
}
複製代碼

第二種方法:

DataTable dt1 = new DataTable();
DataTable calcdt = new DataTable();
// dt1只是獲取表結構,無數據;
// calcdt 有表結構,有數據
// 原方法
foreach (DataRow dr in calcdt.Rows)
{
    dt1.Rows.Add(dr);
}

// 改進後的方法
DataRow drcalc;
foreach (DataRow dr in calcdt.Rows)
{
    drcalc = dt1.NewRow();
    drcalc.ItemArray = dr.ItemArray;
    dt1.Rows.Add(drcalc);
}
複製代碼

其餘操做

一、刪除列

DataTable dt = XXX();

dt.Columns.Remove("Age");

dt.Columns.Remove("Sex");
複製代碼

二、修改列標題

DataTable dt = XXX();

dt.Columns["Age"].ColumnName="年齡";

dt.Columns["Sex"].ColumnName="性別";
複製代碼

三、調整列順序

DataTable dt = XXX();

dt.Columns["Age"].SetOrdinal(1);
複製代碼

做者:阿蒙Amon
來源:CSDN
原文:blog.csdn.net/huyu107/art…
版權聲明:本文爲博主原創文章,轉載請附上博文連接!bash

相關文章
相關標籤/搜索