转自:http://blog.163.com/china__xuhua/blog/static/1997231692011112243812505/

方法一:动态创建一个DataTable ,并为其添加数据

public void CreateTable()
        {
            //创建表
            DataTable dt = new DataTable();
            
            //1、添加列
            dt.Columns.Add("Name", typeof(string)); //数据类型为 文本

//2、通过列架构添加列
            DataColumn age = new DataColumn("Age", typeof(Int32));   //数据类型为 整形
            DataColumn Time = new DataColumn("Time", typeof(DateTime)); //数据类型为 时间
            dt.Columns.Add(age);
            dt.Columns.Add(Time);

//1、添加空行
            DataRow dr1 = dt.NewRow();
            dt.Rows.Add(dr1);

//2、添加空行
            dt.Rows.Add();

//3、添加数据行
            DataRow dr2 = dt.NewRow();
            dr2[0] = "张三"; //通过索引赋值
            dr2[1] = 23;
            dr2["Time"] = DateTime.Now;//通过名称赋值
            dt.Rows.Add(dr2);

//4、通过行框架添加
            dt.Rows.Add("李四",25,DateTime.Now);//Add你们参数的数据顺序要和dt中的列顺对应

}

方法二:为已有DateTable添加一新列,其值可设为默认值,也可设这列不可为空。

public void CreateTable(DataTable vTable)
        {
            //为已有DataTable添加一新列
            DataColumn dc1 = new DataColumn("Tol", typeof(string));
            vTable.Columns.Add(dc1);

//添加一新列,其值为默认值
            DataColumn dc2 = new DataColumn("Sex", typeof(string));
            dc2.DefaultValue = "男";
            dc2.AllowDBNull = false;//这在初床表的时候,其作用,在为已有表新增列的时候,不起作用
            vTable.Columns.Add(dc2);
        }

方法三:筛选DataTable中的数据,使用 Select()方法,把赛选结果可以保存到 DataRow[] drArr; 数据里面,也可以另存为一个新DataTable

public void SelectRowDataTable()
        {
            DataTable dt = new DataTable();//假设dt是由"SELECT C1,C2,C3 FROM T1"查询出来的结果
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i]["C1"].ToString() == "abc")//查询条件
                {
                    //进行操作
                }
            }
            //但这种做法用一两次还好说,用多了就累了。那有没有更好的方法呢?就是dt.Select(),上面的操作可以改成这样:

DataRow[] drArr = dt.Select("C1='abc'");//查询(如果Select内无条件,就是查询所有的数据)

//还可以这样操作:
            DataRow[] drArr1 = dt.Select("C1 LIKE 'abc%'");//模糊查询(如果的多条件筛选,可以加 and 或 or )
            DataRow[] drArr2 = dt.Select("'abc' LIKE C1 + '%'", "C2 DESC");//另一种模糊查询的方法
            DataRow[] drArr3 = dt.Select("C1='abc'", "C2 DESC");//排序

//问题又来了,如果要把DataRow赋值给新的DataTable,怎么赋值呢?你可能会想到: 
            DataTable dtNew1 = dt.Clone();
            for (int i = 0; i < drArr.Length; i++)
            {
                dtNew1.Rows.Add(drArr[i]);
            }
            
            //但这样程序就会出错,说该DataRow是属于其他DataTable的,那要怎么做呢?很简单,这样就可以解决了: 
            DataTable dtNew2 = dt.Clone();
            for (int i = 0; i < drArr.Length; i++)
            {
                dtNew2.ImportRow(drArr[i]);//ImportRow 是复制
            }
        }

方法四:对DataTable筛选指定字段,并保存为新表

public void SelectColumnDataTable(DataTable dt)
        {
            //对DataTable筛选指定字段,并保存为新表
            DataTable dtNew = dt.DefaultView.ToTable(false, new string[] { "列名", "列名", "列名" });//这些列名,确保dt中存在,否则会报错误
        }

方法五:对DataTable进行排序设置(sort)

public void SortDataTable(DataTable dt)
        {
            dt.DefaultView.Sort = "id desc";//重新设置排序
            DataTable dtNew = dt.DefaultView.ToTable(); //保存在一张新表中
        }

转载于:https://www.cnblogs.com/tsintian/p/4698723.html

C#中DataTable的一些用法相关推荐

  1. 谨慎Asp.net中static变量的用法

    谨慎Asp.net中static变量的用法 .Net技术 2007-01-30 22:17:37 阅读925 评论11 字号:大中小 谨慎Asp.net中static变量的用法 在.Net平台下进行C ...

  2. matlab roundn函数_columns函数的使用方法 matlab中round函数具体用法

    Excel中column函数的使用方法是什么?其实小编会说分手是想被挽留,你却顺口祝小编自由. 只读属性,返回 TextStream 文件中当前字符位置的列号. 语法: =Column(referen ...

  3. 【淘宝ERP-资料收集】关于Datatable的一些用法

    C# DataTable.Select() 筛选数据 返回新DataRow[] 有时候我们需要对数据表进行筛选,微软为我们封装了一个公共方法,DataTable.Select(),其用法如下: Sel ...

  4. PHP中魔术方法的用法

    PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...

  5. 简单介绍SQLserver中的declare变量用法

    这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...

  6. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  7. 关于sql中case when的用法

    Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...

  8. 【node】express中mysql的基本用法、连接池的使用、事务的回滚

    [node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...

  9. git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法

    前言 几个月前看完了git文档,但是在实际开发中对很多git命令的具体影响仍有疑惑,比方说pull.fetch和rebase三个命令和检出位置拎不清. Git - Book​git-scm.com 安 ...

最新文章

  1. LeakCanary 源码解析
  2. Windows使用VNC连接ubuntu
  3. java 中数组与list_Java中List与数组相互转换实例分析
  4. springboot链接MySQL线程池_SpringBoot中的数据库连接池
  5. leetcode645. 错误的集合
  6. 一套完整的Selenium自动化测试框架设计实战,这次38K, 妥了
  7. c语言公路竖曲线要素代码,竖曲线要素
  8. SCHNOKA施努卡:锂电池密封性焊接质量视觉检测
  9. 聚合数据iOS SDK 12306火车票查询订票演示示例
  10. [SAP ABAP开发技术总结]搜索帮助Search Help (F4)
  11. JSON.parse报错: Unexpected identifier
  12. 华为交换机批量加入 Vlan 方法
  13. 高等代数 具有度量的线性空间(第10章)4 酉空间,酉变换,埃尔米特变换,正规变换
  14. redis之读写分离
  15. 金蝶KIS商贸版实现'条码标签打印'功能进行商品条码打印
  16. android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析
  17. [iOS开发]Category、Extension和关联对象
  18. ## 计算机学院实验报告 课程名称 .NET程序设计 实验名称 实验三 HTML网页设计
  19. Sping系列课程--工厂
  20. 使用插件ajaxfileupload通过ajax方式上传文件,在火狐下出错

热门文章

  1. 沐创密码芯片获奖!中国电子学会年度技术发明一等奖,颁给国产集成电路公司...
  2. 2021未来科学大奖揭晓:SARS病原发现者、上海交大张杰教授等4人获得百万奖金...
  3. 我们从2021谷歌I/O大会给的谜题中发现了隐藏信息
  4. 谷歌向公众开放Fuchsia OS:支持手机电脑IoT,华为鸿蒙与之对标
  5. 特斯拉的三季度:车卖很多、车主很烦、股价很魔幻
  6. 威马新车型,率先放话搭载L4自动驾驶
  7. 2D图片3秒变立体,变换视角流畅自然:Adobe实习生的智能景深算法,登上顶级期刊...
  8. 千万不要相信程序员在加班时间写的代码!
  9. 数据仓库中的维度表和事实表概述
  10. CJIS安全政策:企业如何确保FIPS合规性?