zoukankan      html  css  js  c++  java
  • 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

    第一种方法在项目中用到,确实好用!不过感觉第二种应该更好用一些。

  • 相关阅读:
    小白的进阶之路7
    小白的进阶之路6
    小白的进阶之路5
    小白的进阶之路4
    小白的进阶之路3
    小白的进阶之路2
    小白的进阶之路1
    02CSS布局13
    02css定位12
    02css盒子模型11
  • 原文地址:https://www.cnblogs.com/EasonJim/p/4811926.html
Copyright © 2011-2022 走看看