几个和DataTable相关的函数

一、关于本文

本文中的DataTableHelper类包括了4个操作DataTable的函数,分别是

1)public static DataTable GetTestDataTable()

这是一个测试用的函数,生成一个有内容的DataTable

2)public static string PrintDataTable(DataTable dt)

这个函数向控制台打印一个DataTable中的所有内容

3)public static DataTable GetAnotherDataTable(DataTable dt)

这个函数制造一个和原DataTable一模一样的DataTable副本

4)public static DataTable Sort(DataTable dt, string rule)

这个函数通过rule指定的规则,返回一个新的排序后的DataTable

二、DataTableHelper类代码

需要添加 using System.Data;

/// <summary>
/// DataTable工具类
/// </summary>
class DataTableHelper
{
    /// <summary>
    /// 生成一个测试用的DataTable
    /// </summary>
    /// <returns>测试用的DataTable</returns>
    public static DataTable GetTestDataTable()
    {
        DataTable dt = new DataTable("DataTable4Test");

        dt.Columns.Add("Id");
        dt.Columns.Add("Name");
        dt.Columns.Add("Data");

        dt.Rows.Add("0", "Tsybius", "20140509");
        dt.Rows.Add("1", "Galatea", "20140723");
        dt.Rows.Add("2", "Gnaeus", "20130314");
        dt.Rows.Add("3", "Titus", "20130104");
        dt.Rows.Add("4", "Publius", "20151111");

        return dt;
    }

    /// <summary>
    /// 向控制台打印DataTable中内容
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public static string PrintDataTable(DataTable dt)
    {
        StringBuilder sb = new StringBuilder();

        //1.打印DataTable名
        sb.Append("TableName: " + dt.TableName + "\n");
            
        //2.打印列头
        for (int i = 0; i < dt.Columns.Count; i++)
        {
            sb.Append(dt.Columns[i].ColumnName + "\t");
        }
        sb.Append(‘\n‘);

        //3.打印各列
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                sb.Append(dt.Rows[i][j].ToString() + "\t");
            }
            sb.Append(‘\n‘);
        }

        sb.Append("Output Complete!");

        return sb.ToString();
    }

    /// <summary>
    /// 生成一个与原DataTable一模一样的DataTable
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public static DataTable GetAnotherDataTable(DataTable dt)
    {
        DataTable dtAnother = dt.Clone();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            dtAnother.Rows.Add(dt.Rows[i].ItemArray); 
        }
        return dtAnother;
    }

    /// <summary>
    /// 对DataTable进行排序
    /// </summary>
    /// <param name="dt">待排序数据源</param>
    /// <param name="rule">DataView的Sort项</param>
    /// <returns>一个排序好的数据源</returns>
    public static DataTable Sort(DataTable dt, string rule)
    {
        DataView dv = dt.DefaultView;
        dv.Sort = rule;
        return dv.ToTable();
    }
}

二、Main函数调用示例

class Program
{
    static void Main(string[] args)
    {
        //1.生成一个测试用的DataTable并输出其内容
        DataTable dt1 = DataTableHelper.GetTestDataTable(); //获取测试DataTable
        string a = DataTableHelper.PrintDataTable(dt1);     //输出DataTable内容
        Console.WriteLine(a);

        Console.WriteLine("----");

        //2.生成一个与dt相同结构相同内容的DataTable
        DataTable dt2 = DataTableHelper.GetAnotherDataTable(dt1);
        dt2.Rows[0].Delete(); 
        Console.WriteLine("dt1行数:" + dt1.Rows.Count); //5
        Console.WriteLine("dt2行数:" + dt2.Rows.Count); //4

        Console.WriteLine("----");

        //3.为dt1排序(1)
        DataTable dt3 = DataTableHelper.Sort(dt1, "Id Desc");
        string b = DataTableHelper.PrintDataTable(dt3);
        Console.WriteLine(b);

        Console.WriteLine("----");

        //4.为dt1排序(2)
        DataTable dt4 = DataTableHelper.Sort(dt1, "Name Asc,Data Desc");
        string c = DataTableHelper.PrintDataTable(dt4);
        Console.WriteLine(c);

        Console.ReadLine();
    }
}

三、运行效果截图

END

几个和DataTable相关的函数,布布扣,bubuko.com

时间: 2024-07-30 13:39:10

几个和DataTable相关的函数的相关文章

(二十四)linux新定时器:timefd及相关操作函数

timerfd是Linux为用户程序提供的一个定时器接口.这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景. 一,相关操作函数 #include <sys/timerfd.h> int timerfd_create(int clockid, int flags); int timerfd_settime(int fd, int flags, const struct itimerspec *new_value, struct itim

串口相关的函数

要使能串口 1 的中断,同时设置抢占优先级为 1,子优先级位 2,初始化的方法是: USART_InitTypeDef USART_InitStructure; NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口 1 中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ;// 抢占优先级为 1 NVIC_InitStructure.NVIC_IRQChannelSubPrior

C# DataTable 相关操作

判断DataTable中某列是否包含某值 /// <summary> /// 判断DataTable中是否包含某值 /// </summary> /// <param name="dt">DataTable</param> /// <param name="columnName">列名</param> /// <param name="fieldData">值&l

Java Thread 相关的函数

构造方法摘要 Thread()          分配新的 Thread 对象. Thread(Runnable target)          分配新的 Thread 对象. Thread(Runnable target, String name)          分配新的 Thread 对象. Thread(String name)          分配新的 Thread 对象. Thread(ThreadGroup group, Runnable target)          分

Android 内部存储相关的函数(getCacheDir,getDir, getFileStreamPath,getFilesDir,openFileInput, ...)

为了保证应用程序存储数据的安全性,开发者在开发应用程序的过程中需要注意使用Android 应用程序的内部存储空间. 根据不同的要求,将对应的数据文件.缓存文件.临时文件等分别存储在相应的位置. 注意:存储在SDCard 上的文件,将对任何Android 应用程序可见,并具有存取权限.因此,仅仅是应用程序自己使用,的临时文件也不要存储到SDCard上. 应用程序内部存储相关函数,请参考Android 官方网站, 下文对几个重要函数做了中文介绍: 出处:http://blog.csdn.net/hu

与对象相关的函数

与对象相关的函数 get_object_vars();????????用于获取对象中的公有属性 示例: is_subclass_of(象名或类名,父类名);????????判断一个类是否是另一个类的子类 class_exists(类名)????????判断一个类是否存在

Scala中Zip相关的函数

在Scala中存在好几个Zip相关的函数,比如zip,zipAll,zipped 以及zipWithIndex等等.我们在代码中也经常看到这样的函数,这篇文章主要介绍一下这些函数的区别以及使用. 1.zip函数将传进来的两个参数中相应位置上的元素组成一个pair数组.如果其中一个参数元素比较长,那么多余的参数会被删掉.看下英文介绍吧: Returns a list formed from this list and another iterable collection by combining

Lua中编译执行代码相关的函数以及机制

可以说Lua之所以称为是一种解释型的语言,正是因为有诸如load这样的函数,因为这样的函数使得Lua可以执行动态生成的代码.下面具体来分析这些函数.   load函数 load函数原型如下: load (chunk [, chunkname [, mode [, env]]]) 该函数加载一个chunk,如果没有错误,则返回一个函数.如果传入chunk的值是一个字符串,则就加载这个字符串:如果传入chunk的值是一个函数,则这个函数必须返回一个字符串,并且load会一直调用这个函数,直到这个函数

PHP中文件类型 文件属性 路径以及 文件相关的函数

一: 文件类型判断: 1.is_dir()  判断是不是目录 2.is_file() 判断是不是文件 3.is_executeable() 判断是不是可执行文件 4.is_readable()  判断是不是可读文件 5.is_writable() 判断是不是可写文件 6.is_link()  判断是不是快捷方式 二:文件属性: 1.file_exits()  文件是否存在 2.filesize() 文件大小 3.filectime()  文件创建时间 4.filemtime() 文件修改的时间