DataSet篩選資料然後新增到新的DataSet中引發的一系列血案
直入程式碼:
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,或者下方發表評論。<==相關文章
- 在DataSet資料集中 DataView篩選資料View
- Torch 中Dataset 和Dataloader 的資料變換
- JavaScript datasetJavaScript
- 離線資料處理-DataSet物件物件
- 關於 ECharts4 新增的資料集(dataset)Echarts
- 淺談DataSet 的用法
- 大資料開發-Flink-資料流DataStream和DataSet大資料AST
- 為什麼redux要返回一個新的state引發的血案Redux
- Linq強大的查詢功能,以及DataSet中多表之間交叉查詢,欄位過濾,篩選等
- 為什麼 redux 要返回一個新的 state 引發的血案(二)Redux
- asp.net---Dataset的用法ASP.NET
- DataSet的幾個基本操作
- Flutter 中由 BuildContext 引發的血案FlutterUIContext
- 谷歌上線資料搜尋引擎 Dataset Search谷歌
- 【Dataset】Maple-IDS - Network Security Malicious Traffic Detection Dataset
- flink batch dataset 的基本操作BAT
- RDD、DataFrame和DataSet的區別
- XML與DataSet的相互轉換XML
- 05-快速理解SparkSQL的DataSetSparkSQL
- tensorflow dataset APIAPI
- image-classification-dataset
- DataSet多表關聯實現本地資料複雜的查詢
- .Net版本引發的血案
- 【RMAN】Oracle_rman中skip引發的血案Oracle
- 簡單實用的DataSet更新資料庫的類+總結(c#)資料庫C#
- Mmdetection dataset pipline
- Pytorch Dataset入門PyTorch
- echarts使用dataset資料集建立單軸散點圖Echarts
- RestTemplate超時引發的血案REST
- JDBC亂碼引發的"血案"JDBC
- SwipeRefreshLayout 引發的一場血案
- WCF使用資料集(DataSet)、資料表(DataTable)、集合(Collection)傳遞資料 (轉)
- 如何使用TensorFlow中的高階API:Estimator、Experiment和DatasetAPI
- dataset與setAttribute()、getAttribute()的區別
- LINQ系列:LINQ to DataSet的DataTable操作
- LINQ系列:LINQ to DataSet的DataView操作View
- dataset 判斷整列是否有重複,找出重複資料
- AI研發者福利!谷歌推出資料集搜尋專用引擎Dataset SearchAI谷歌