zoukankan      html  css  js  c++  java
  • DataTable方法 和 性能

    列的循序调整

    View Code
     1         Private Function AdjustFirstColumn(ByVal dsData As DataSet, ByVal firstColName As String) As DataSet
     2             Dim bl As Boolean = False
     3             For Each dt As DataTable In dsData.Tables
     4                 For Each drpt As DataColumn In dt.Columns
     5                     If drpt.ColumnName = firstColName Then
     6                         bl = True
     7                     End If
     8                 Next
     9                 If bl Then
    10                     dt.Columns(firstColName).SetOrdinal(0)
    11                 End If
    12             Next
    13             Return dsData
    14 
    15         End Function

     按一定数量行进行切割

     

    View Code
     1         Private Function splitDataTable(ByVal dt As DataTable, ByVal ColNumb As Integer) As DataSet
     2 
     3             Dim leftThird As Integer = dt.Rows.Count Mod ColNumb
     4             Dim timesThird As Integer = (dt.Rows.Count - leftThird) / ColNumb    这个有4舍五入现象 所以 要减掉 这个 余数 先,再开始整除
     5 
     6             Dim ds As New DataSet()
     7 
     8             For i As Integer = 1 To timesThird
     9                 Dim dt1 As DataTable = dt.Clone()
    10                 Dim j As Integer
    11 
    12                 For j = (i - 1) * ColNumb To (i * ColNumb - 1)
    13                     dt1.Rows.Add(dt.Rows(j).ItemArray)
    14                 Next
    15 
    16 
    17 
    18                 dt1.TableName = dt.TableName + i.ToString()
    19                 ds.Tables.Add(dt1)
    20             Next
    21 
    22             If leftThird > 0 Then
    23                 Dim dt2 As DataTable = dt.Clone()
    24                 Dim j As Integer
    25 
    26                 For j = timesThird * ColNumb To leftThird + timesThird * ColNumb - 1
    27                     dt2.Rows.Add(dt.Rows(j).ItemArray)
    28                 Next
    29 
    30 
    31 
    32                 dt2.TableName = dt.TableName + (timesThird + 1).ToString()
    33                 ds.Tables.Add(dt2)
    34             End If
    35             Return ds
    36         End Function

     按某列进行分组

    View Code
     1 IEnumerable<IGrouping<string, DataRow>> result = dt.Rows.Cast<DataRow>().GroupBy<DataRow, string>(dr => dr[strGroupBy1].ToString());                    
     2    int j = 0;
     3    foreach (IGrouping<string, DataRow> ig in result)
     4   {
     5       DataTable dt1 = dt.Clone();
     6       j++;
     7       foreach (var dr_gp1 in ig){
     8             dt1.Rows.Add(dr_gp1.ItemArray);                                        
     9        }
    10        dt1.TableName = dt.TableName + j.ToString();
    11                                    
    12        if (dt1.Rows.Count > 0)
    13        {
    14           dsGroup1.Tables.Add(dt1);
    15        }               

     过滤

    View Code
    1     dt.DefaultView.RowFilter = "colname=" + xxxx;
    2     if (dt.DefaultView.Count > 0)
    3     {
    4         string str = dt.DefaultView[0]["ColumnsName"].ToString()); 
    5     }
  • 相关阅读:
    冒泡排序、选择排序、简单二分查找
    asp.net和js读取文件的MD5值的方法
    C#对.CSV格式的文件--逗号分隔值文件 的读写操作及上传ftp服务器操作方法总结
    利用jQueryRotate旋转插件开发大转盘抽奖
    说说第三方支付接口开发及开发中遇到的坑爹问题
    浅谈程序员接私单那点事及接私单需要注意的问题
    C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取
    C#.NET微信公众账号接口开发系列文章整理--微信接口开发目录,方便需要的博友查询
    C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)
    C#/ASP.NET MVC微信公众号接口开发之从零开发(三)回复消息 (附源码)
  • 原文地址:https://www.cnblogs.com/sandy_liao/p/2252947.html
Copyright © 2011-2022 走看看