首页 > 代码库 > 几个和DataTable相关的函数
几个和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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。