zoukankan      html  css  js  c++  java
  • C#中去掉表中重复的数据

                       /// <summary>

                       /// 去掉表中重复的数据  int

                       /// </summary>

                       /// <param name="SourceTable">原始表</param>

                       /// <param name="FieldName">重复的字段</param>

                       /// <returns></returns>

                       public DataTable SelectDistinct(DataTable SourceTable, string FieldName)

                       {

                                DataTable dt = new DataTable();

                                for (Int32 i = 0; i < SourceTable.Columns.Count; i++)

                                {

                                         string fieldName=SourceTable.Columns[i].Caption;

                                         dt.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType);

                                }

                                DataRow dataRow = dt.NewRow();

                                foreach (DataRow dr in SourceTable.Select("", FieldName))

                                {

                                         string str=dr[FieldName].ToString();

                                         if(str != string.Empty)

                                         {

                                                   if(int.Parse(str)!=0)

                                                   {

                                                            if (dataRow == null || !(ColumnEqual(dataRow[FieldName], dr[FieldName])))

                                                            {

                                                                     dataRow=dr;

                                                                     DataRow row = dt.NewRow();

                                                                     for (int i = 0; i < dataRow.ItemArray.Length; i++)

                                                                     {

                                                                               row[i] = dataRow[i];

                                                                     }

                                                                     dt.Rows.Add(row);

                                                            }

                                                   }

                                         }

                                }

                                return dt;

                       }

    /// <summary>

                       /// 去掉表中重复的数据 字段 string

                       /// </summary>

                       /// <param name="SourceTable">原始表</param>

                       /// <param name="FieldName">重复的字段</param>

                       /// <returns></returns>

                       public DataTable SelectDistinctStr(DataTable SourceTable, string FieldName)

                       {

                                DataTable dt = new DataTable();

                                for (Int32 i = 0; i < SourceTable.Columns.Count; i++)

                                {

                                         string fieldName=SourceTable.Columns[i].Caption;

                                         dt.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType);

                                }

                                DataRow dataRow = dt.NewRow();

                                foreach (DataRow dr in SourceTable.Select("", FieldName))

                                {

                                         string str=dr[FieldName].ToString();

                                         if(str != string.Empty)

                                         {

                                                   if (dataRow == null || !(ColumnEqual(dataRow[FieldName], dr[FieldName])))

                                                   {

                                                            dataRow=dr;

                                                            DataRow row = dt.NewRow();

                                                            for (int i = 0; i < dataRow.ItemArray.Length; i++)

                                                            {

                                                                     row[i] = dataRow[i];

                                                            }

                                                            dt.Rows.Add(row);

                                                   }

                                         }

                                }

                                return dt;

                       }

                       private bool ColumnEqual(object A, object B)

                       {

                                if(A == DBNull.Value && B == DBNull.Value) //     两个都是   DBNull.Value

                                         return true;  

                                if(A == DBNull.Value || B == DBNull.Value) //     只有一个是   DBNull.Value

                                         return false;  

                                return (A.Equals(B));//   正常比较

                       }

    /// <summary>

                       /// 表中筛选数据

                       /// </summary>

                       /// <param name="SourceTable">原始表</param>

                       /// <param name="FieldName1">表里的字段名</param>

                       /// <param name="FieldName2">筛选的数据</param>

                       /// <returns></returns>

                       public DataTable SelectByField(DataTable SourceTable,string FieldName1, string FieldName2)

                       {

                                DataTable dt = new DataTable();

                                for (Int32 i = 0; i < SourceTable.Columns.Count; i++)

                                {

                                         string fieldName=SourceTable.Columns[i].Caption;

                                         dt.Columns.Add(fieldName, SourceTable.Columns[fieldName].DataType);

                                }

                                foreach (DataRow dr in SourceTable.Select(" "+FieldName1+" = '" + FieldName2 + "'"))

                                {

                                         DataRow row = dt.NewRow();

                                         for (int i = 0; i < dr.ItemArray.Length; i++)

                                         {

                                                   row[i] = dr[i];

                                         }

                                         dt.Rows.Add(row);

                                }

                                return dt;

                       }

  • 相关阅读:
    HDU 4031 Attack(离线+线段树)(The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest)
    BZOJ 1010 玩具装箱toy(四边形不等式优化DP)(HNOI 2008)
    分布式事务二阶提交DTS系统
    flume原理及代码实现
    Liferay JSP Tag Libraries介绍
    如何用maven tycho构建自己的Eclipse RCP应用
    如何合并两个git commit
    推荐一个好用的git图形化工具
    git gc干了啥
    如何把VS Code的Language Server Protocol整合到Eclipse中来
  • 原文地址:https://www.cnblogs.com/qfb620/p/4186518.html
Copyright © 2011-2022 走看看