閱讀833 返回首頁    go 阿裏雲 go 技術社區[雲棲]


獲取對固定列不重複的新DataTable

#region 獲取對固定列不重複的新DataTable
/// <summary>  
/// 獲取對固定列不重複的新DataTable  
/// </summary>  
/// <param name="dt">含有重複數據的DataTable</param>  
/// <param name="colName">需要驗證重複的列名</param>  
/// <returns>新的DataTable,colName列不重複,表格式保持不變</returns>  
private DataTable GetDistinctTable(DataTable dt, string colName)  
{  
    if (dt.Rows.Count == 0 || dt.Rows.Count == 1)  
    {  
        WriteFile("GetDistinctTable傳入dt的行數小於等於1" + "\r\n", logName, out outMessage);  
        return dt;  
    }  
    DataView dv = dt.DefaultView;  
    //dv過濾dv中的重複列名  
    DataTable dtCardNo = dv.ToTable(true, colName);  
    DataTable Pointdt = new DataTable();  
    //ToTable()根據現有 DataView 中的行,創建並返回一個新的 DataTable。  
    //輸出表與輸入表包含相同的列  
    Pointdt = dv.ToTable();  
    Pointdt.Clear();  
    for (int i = 0; i < dtCardNo.Rows.Count; i++)  
    {  
        try  
        {  
            //dr取的是Select返回的DataRow[]中的第一條數據  
            //如果dtCardNo.Rows[i][0].ToString()中沒有值會報數組超出索引界限的錯誤  
            if (!string.IsNullOrEmpty(dtCardNo.Rows[i][0].ToString()))  
            {  
               DataRow dr = dt.Select(colName + "='" + dtCardNo.Rows[i][0].ToString() + "'")[0];  
                //DataRow.ItemArray通過一個數組來獲取或設置此行的所有值  
                Pointdt.Rows.Add(dr.ItemArray);  
            }  
        }  
        catch (Exception ee)  
        {  
           //可以將錯誤寫入日誌文件  
        }  
    }  
    return Pointdt;  
}  
#endregion  




linqs實現

https://blog.csdn.net/jiankunking/article/details/42749663

最後更新:2017-04-03 12:54:23

  上一篇:go C# index of 用法(轉載)
  下一篇:go Error: String or binary data would be truncated. The statement has been terminated