我試圖將行從一個DataTable
轉移到許多其他動態生成的DataTable
s。父DataTable
包含以下格式的數據:將一個DataTable劃分爲多個
ID Name Type
--------------
1 ABC 0
1 PQR 2
2 XYZ 8
2 QWE 7
3 IOP 6
我想,與同ID
行必須在一個表中。例如,上面的場景會生成3個表格。一個包含ID = 1
的行,第二個包含ID = 2
的行,第三個包含ID = 3
的行。我想實現這個使用下面的代碼:
DataSet ResultantDataSet = new DataSet();
DataView dv = InputDataSet.Tables[0].DefaultView;
dv.Sort = "ID";
int newID = -1;
DataTable dt = null;
foreach(DataRow dr in dv.ToTable().Rows) {
if (newID != int.Parse(dr["ID"].ToString())) {
newID = int.Parse(dr["ID"].ToString());
if (dt != null) ResultantDataSet.Tables.Add(dt);
dt = new DataTable();
} else {
dt.ImportRow(dr);
}
}
但問題是,ResultantDataSet
包含有一個未命名列空行的表。出了什麼問題?
不是雞蛋裏挑骨頭或什麼,但你爲什麼要這麼做?這聽起來像是一種可怕的非規範化形式。 – Zane
@Zane其實我有一個用戶控件接受'DataSet's並以特定的格式顯示它們。要將其轉換爲該格式,我需要執行此操作。 –
好吧,那麼對我來說最好的辦法就是將唯一ID插入#Table中,然後遍歷每個值,並使用動態SQL語句爲每個值插入表。抱歉,不知道我是否有時間爲您寫一個代碼示例來說明如何完成此操作。 – Zane