DataSet篩選資料然後新增到新的DataSet中引發的一系列血案

weixin_34026276發表於2015-09-16

直入程式碼:

            var ds2 = new DataSet();
            if (ds.Tables.Count > 0)
            {
                var rows = ds.Tables[0].Select(" usertype <> 'UU'");
                if (rows.Length>0)
                {
                    DataTable tmp = rows[0].Table.Clone(); // 複製DataRow的表結構
                    foreach (DataRow row in rows)
                        tmp.ImportRow(row); // 將DataRow新增到DataTable中
                    ds2.Tables.Add(tmp);
                }
            }        

上面的程式碼看似簡單,但是會有很多陷阱,比如,網上照的方法,將DataRow新增到DataTable中是tmp.Rows.Add,然而這種方式會報一個“該行已經屬於另一個表”的錯誤,
而我上面的ImportRow已經解決此問題。

為什麼會報這個錯了,我們來往下分析:

我們在做專案的時候,一般會使用這三個方法去實現:

一、DataTable.Rows.Add(DataRow.ItemArray);

二、DataTable.ImportRow(DataRow)

三、設定DataTable的tablename,然後.Rows.Add

第一種方法在專案中用到,確實好用!不過感覺第二種應該更好用一些。

==>如有問題,請聯絡我:easonjim#163.com,或者下方發表評論。<==

相關文章