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;

                       }

  • 相关阅读:
    同一域环境下SQLServer DB Failover故障转移配置详解
    WebAPI项目中使用SwaggerUI
    Failed to initialize the Common Language Runtime
    WCF Throttling 限流的三道闸口
    Entity Framework 乐观并发控制
    MVC3不能正确识别JSON中的Enum枚举值
    编写高质量代码改善C#程序的157个建议读书笔记【11-20】
    如果下次做模板,我就使用Nvelocity
    对于react中的this.setState的理解
    对于react中rredux的理解
  • 原文地址:https://www.cnblogs.com/qfb620/p/4186518.html
Copyright © 2011-2022 走看看