Maison >développement back-end >Tutoriel C#.Net >Comparez si le contenu de deux DataTables est égal. Commencez par comparer la quantité. Si la quantité est égale, comparez le contenu.

Comparez si le contenu de deux DataTables est égal. Commencez par comparer la quantité. Si la quantité est égale, comparez le contenu.

黄舟
黄舟original
2017-02-16 11:33:531490parcourir

    #region 比较两个DataTable内容是否相等,先是比数量,数量相等就比内容
        ///   <summary> 
        ///   比较两个DataTable内容是否相等,先是比数量,数量相等就比内容 
        ///   </summary> 
        ///   <param   name= "dtA "> </param> 
        ///   <param   name= "dtB "> </param> 
        public static bool CompareDataTable(DataTable dtA, DataTable dtB)
        {
            if (dtA.Rows.Count == dtB.Rows.Count)
            {
                if (CompareColumn(dtA.Columns, dtB.Columns))
                {
                    //比内容 
                    for (int i = 0; i < dtA.Rows.Count; i++)
                    {
                        for (int j = 0; j < dtA.Columns.Count; j++)
                        {
                            if (!dtA.Rows[i][j].Equals(dtB.Rows[i][j]))
                            {
                                return false;
                            }
                        }
                    }
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
        ///   <summary> 
        ///   比较两个字段集合是否名称,数据类型一致 
        ///   </summary> 
        ///   <param   name= "dcA "> </param> 
        ///   <param   name= "dcB "> </param> 
        ///   <returns> </returns> 
        private static bool CompareColumn(System.Data.DataColumnCollection dcA, System.Data.DataColumnCollection dcB)
        {
            if (dcA.Count == dcB.Count)
            {
                foreach (DataColumn dc in dcA)
                {
                    //找相同字段名称 
                    if (dcB.IndexOf(dc.ColumnName) > -1)
                    {
                        //测试数据类型 
                        if (dc.DataType != dcB[dcB.IndexOf(dc.ColumnName)].DataType)
                        {
                            return false;
                        }
                    }
                    else
                    {
                        return false;
                    }
                }
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion

Ce qui précède consiste à comparer si le contenu de deux DataTables est égal. Tout d'abord, comparez la quantité. Si la quantité est égale, comparez le contenu. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (. www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn