- #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
原文地址:点击打开链接