程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> import flash.events.Event;

import flash.events.Event;

編輯:C#入門知識

[csharp]  DataView DV = dtLineTypeURL.DefaultView; 
DataTable dtTmp = DV.ToTable("tb1", true, "LineType"); // 對 LineType 使用distinct  
dtLineTypeURL = dtTmp; 

     DataView DV = dtLineTypeURL.DefaultView;
     DataTable dtTmp = DV.ToTable("tb1", true, "LineType"); // 對 LineType 使用distinct
     dtLineTypeURL = dtTmp;或

 

[csharp]  dtLineTypeURL = dtLineTypeURL.DefaultView.ToTable(true, "LineType"); // 對 LineType 使用distinct 

    dtLineTypeURL = dtLineTypeURL.DefaultView.ToTable(true, "LineType"); // 對 LineType 使用distinct
注意:通過以上方式 得到的dataTable 僅有LineType這一列,其它列都被丟棄了。

 


如果 只是希望 針對某一列做 distinct, 其它列保留,則用下面的:


[csharp]  #region 刪除DataTable重復列,類似distinct  
/// <summary>  
/// 刪除DataTable重復列,類似distinct  
/// </summary>  
/// <param name="dt">DataTable</param>  
/// <param name="Field">字段名</param>  
/// <returns></returns>  
public static DataTable DeleteSameRow(DataTable dt, string Field) 

    ArrayList indexList = new ArrayList(); 
    // 找出待刪除的行索引  
    for (int i = 0; i < dt.Rows.Count - 1; i++) 
    { 
        if (!indexList.Contains(i)) 
        { 
            for (int j = i + 1; j < dt.Rows.Count; j++) 
            { 
                if (dt.Rows[i][Field].ToString() == dt.Rows[j][Field].ToString()) 
                { 
                    indexList.Add(j); 
                } 
            } 
        } 
    } 
 
    indexList.Sort(); 
 
    // 根據待刪除索引列表刪除行  
    for (int i = indexList.Count - 1; i >= 0; i--) 
    { 
        int index = Convert.ToInt32(indexList[i]); 
        dt.Rows.RemoveAt(index); 
    } 
    return dt; 

 
#endregion  

       #region 刪除DataTable重復列,類似distinct
       /// <summary>
       /// 刪除DataTable重復列,類似distinct
       /// </summary>
       /// <param name="dt">DataTable</param>
       /// <param name="Field">字段名</param>
       /// <returns></returns>
       public static DataTable DeleteSameRow(DataTable dt, string Field)
       {
           ArrayList indexList = new ArrayList();
           // 找出待刪除的行索引
           for (int i = 0; i < dt.Rows.Count - 1; i++)
           {
               if (!indexList.Contains(i))
               {
                   for (int j = i + 1; j < dt.Rows.Count; j++)
                   {
                       if (dt.Rows[i][Field].ToString() == dt.Rows[j][Field].ToString())
                       {
                           indexList.Add(j);
                       }
                   }
               }
           }

           indexList.Sort();

           // 根據待刪除索引列表刪除行
           for (int i = indexList.Count - 1; i >= 0; i--)
           {
               int index = Convert.ToInt32(indexList[i]);
               dt.Rows.RemoveAt(index);
           }
           return dt;
       }
 
       #endregion

調用方法:

  dtLineTypeURL = Common.DeleteSameRow(dtLineTypeURL, "LineType");// 對 LineType 使用distinct

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved