国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

比較兩個DataTable是否相等(網(wǎng)上流傳的通病)

2019-11-17 03:50:22
字體:
供稿:網(wǎng)友
我寫這篇文章只是想告訴大家,網(wǎng)上流傳最廣的并不一定是正確的

我想要是Google搜一下,如何判斷兩個DataTable相等,出來的最多的是下面的方法



代碼
   PRivate bool  ValueEquals(DataTable objA,DataTable objB)
    {
        if(objA != null && objB != null)
        {
              if(objA.Rows.Count != objB.Rows.Count)
              {
                  return false;
              }

              if(objA.Columns.Count != objB.Columns.Count)
              {
                  return false;
              }
        }
       
    
        DataView dv = new DataView(objB);

        string keys = "";

        foreach(DataColumn col in  objA.Columns)
        {
               keys += ","+col.ColumnName;
        }

      
        dv.Sort = keys.Substring(1);

        
        foreach(DataRow row in  objA.Rows)
        {
               if(row.RowState != DataRowState.Deleted)
               {
                   if(dv.Find(row.ItemArray)<0)
                   {
                          return false;
                   }
               }
               else
               {
                   return false;
               }
        }

        return true;

    }



這個段代碼的始作俑者已經(jīng)無法考證了,但是卻流傳很多。

我不知道轉(zhuǎn)載的人有沒有去驗證一下這個方法的正確性,還是只是轉(zhuǎn)載.

這個方法其實是錯的。

如果兩個DataTable的行數(shù)一樣,列數(shù)一樣,但是第一行相同,第二行不相同,用上面的方法比較,返回的依然是True



寫在這里是告訴廣大菜鳥(包括我在內(nèi)),網(wǎng)上流傳最多的不一定是正確的,也想對廣大老鳥說一下,轉(zhuǎn)載的時候請驗證一下內(nèi)容的正確性,我想這樣不管是對自己,對別人都是有好處的吧。

第一次發(fā),如果說的不對的,希望大家不要建議

也希望可以高手給出正確的、高效的,比較兩個DataTable是否相等的方法

我是用的比較老土的方法



代碼
public bool DataTableTheSame(DataTable Table1, DataTable Table2)
        {
            if (Table1 == null || Table2 == null)
            {
                return false;
            }
            if (Table1.Rows.Count != Table2.Rows.Count)
            {
                return false;
            }
            if (Table1.Columns.Count != Table2.Columns.Count)
            {
                return false;
            }
            for (int i = 0; i < Table1.Rows.Count; i++)
            {
                for (int j = 0; j < Table1.Columns.Count; j++)
                {
                    if (Table1.Rows[i][j].ToString() != Table2.Rows[i][j].ToString())
                    {
                        return false;
                    }
                }
            }
            return true;
        }



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南和县| 洱源县| 阿坝县| 尼勒克县| 长汀县| 固始县| 萝北县| 芜湖市| 平泉县| 开化县| 璧山县| 和顺县| 盘锦市| 永济市| 马边| 梅河口市| 玉田县| 徐州市| 剑川县| 临潭县| 莱西市| 阿鲁科尔沁旗| 永宁县| 青川县| 门头沟区| 贵阳市| 乐都县| 富川| 文登市| 衡东县| 惠东县| 新泰市| 浮山县| 河东区| 南阳市| 怀柔区| 交口县| 启东市| 玛纳斯县| 莒南县| 资中县|