1、创建DataTable对象

DataTable dt = new DataTable("Table_AX");

2、为DataTable创建列

//方式一(我觉得这种好)
dt.Columns.Add("column0", System.Type.GetType("System.String"));
//方式二
DataColumn dc = new DataColumn("column0", typeof(string));
DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean"));
dt.Columns.Add(dc);

3、添加数据

DataRow dr = dt.NewRow();
dr["column0"] = "AX";
dr["column1"] = true;
dt.Rows.Add(dr);

4、移除数据

dt.Columns.Remove("column0");

4、判断是否有数据

//判断是否有数据
if (dt.Rows.Count > )
{
//有
}

5、查询

DataRow[] drs = dt.Select("column1 is null");
DataRow[] drss = dt.Select("column0 = 'AX'");
//返回第一条
DataRow dr = dt.Select("column1 is null").First();
//多条件用and连接
DataRow[] rows = dt.Select("column0 = 'AX' and column1 == true").First();

6、复制

//复制一个DataTable(有数据)
DataTable dtNew = dt.Copy();
//复制一个空的DataTable(无数据)
DataTable dtOnlyScheme = dt.Clone();
//将 DataRow 复制到 DataTable 中,保留任何属性设置以及初始值和当前值
DataRow[] rows = dt.Select("column0 = 'AX' and column1 == true").First();
foreach (DataRow row in rows)
{
dtNew.ImportRow(row);//复制行数据
}

7、DataRow赋值

DataRow drOperate = dt.Rows[];
//方式一
drOperate["column0"] = "AXzhz";
drOperate["column1"] = false;
//方式二
drOperate[] = "AXzhz";
drOperate[] = false;
//方式三
dt.Rows[]["column0"] = "AXzhz";
dt.Rows[]["column1"] = false;
//方式四
dt.Rows[][] = "AXzhz";
dt.Rows[][] = false;

8、把DataRow数据存到DataTable中

dtOnlyScheme.Rows.Add(dt.Rows[].ItemArray);

9、转成字符串

System.IO.StringWriter sw = new System.IO.StringWriter();
System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw);
dt.WriteXml(xw);//此处DataTable必须有名字
string s = sw.ToString();

10、筛选数据(详见DefaultView文章)

dt.DefaultView.RowFilter = "column1 <> true";
dt.DefaultView.RowFilter = "column1 = true";

11、排序

dt.DefaultView.Sort = "column0 ,column1 ASC";
dt = dt.DefaultView.ToTable();

12、判断一个字符串是否为DataTable的列名

bool flag = dt.Columns.Contains("AX");

13、取值

string str =dt.Rows[第几行]["字段名"].ToString();
string str =dt.Rows[第几行][第几列].ToString(); //for循环
for (int i = ; i < dt.Rows.Count; i++)
{
string str = dt.Rows[i]["字段名"].ToString();
string str = dt.Rows[i][第几列].ToString();
}
//foreach循环
foreach (DataRow dr in dt.Rows)
{
string str = dr["字段名"].ToString();
}
//创建DataTable对象
DataTable dt = new DataTable("Table_AX");
//为DataTable创建列
//方式一(我觉得这种好)
dt.Columns.Add("column0", System.Type.GetType("System.String"));
//方式二
DataColumn dc = new DataColumn("column1", System.Type.GetType("System.Boolean"));
dt.Columns.Add(dc);
//添加数据
DataRow dr = dt.NewRow();
dr["column0"] = "AX";
dr["column1"] = true;
dt.Rows.Add(dr); //判断是否有数据
if (dt.Rows.Count > )
{
//有
} //查询
DataRow[] drs = dt.Select("column1 is null");
DataRow[] drss = dt.Select("column0 = 'AX'"); //复制一个DataTable(有数据)
DataTable dtNew = dt.Copy();
//复制一个空的DataTable(无数据)
DataTable dtOnlyScheme = dt.Clone(); //给DataRow赋值的三种方式
DataRow drOperate = dt.Rows[];
//方式一
drOperate["column0"] = "AXzhz";
drOperate["column1"] = false;
//方式二
drOperate[] = "AXzhz";
drOperate[] = false;
//方式三
dt.Rows[]["column0"] = "AXzhz";
dt.Rows[]["column1"] = false;
//方式四
dt.Rows[][] = "AXzhz";
dt.Rows[][] = false; //把DataRow数据存到DataTable中
dtOnlyScheme.Rows.Add(dt.Rows[].ItemArray); //转成字符串
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(sw);
dt.WriteXml(xw);//此处DataTable必须有名字
string s = sw.ToString(); //筛选数据(详见DefaultView文章)
dt.DefaultView.RowFilter = "column1 <> true";
dt.DefaultView.RowFilter = "column1 = true"; //排序
dt.DefaultView.Sort = "column0 ,column1 ASC";
dt = dt.DefaultView.ToTable(); //绑定的其实是DefaultView
//gvTestDataTable.DataSource = dt;
//gvTestDataTable.DataBind(); //判断一个字符串是否为DataTable的列名
bool flag = dt.Columns.Contains("AX");

整合代码

C# DataTbale详细操作的更多相关文章

  1. (47) odoo详细操作手册

    odoo 8 详细操作手册, ERP(Odoo8.0)操作手册-v1.10(陈伟明).pdf 链接: http://pan.baidu.com/s/1hsp0bVQ 密码: r9tt 花了将近9个月时 ...

  2. yii2 rbac权限控制详细操作步骤

    作者:白狼 出处:http://www.manks.top/article/yii2_rbac_description本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出 ...

  3. yii2权限控制rbac之详细操作步骤

    本篇的主题是 rbac权限控制的详细操作步骤,注意是操作步骤哦,关于配置与rbac的搭建,我们在博文 yii2搭建完美后台并实现rbac权限控制实例教程说的再清楚不过了. 但是,在很多人的反馈下,说是 ...

  4. UiAutomator环境搭建及详细操作

    一.环境搭建 1.1 必备条件 JDK SDK(API高于15) Eclipse(安装ADT插件) ANT(用于编译生成的jar) 安装JDK并添加环境变量 1.2 详细步骤 1.安装JDK并添加环境 ...

  5. day42 字段的增删改查详细操作

    复习 # 1.表的详细操作 create table nt like ot; # 只复制表的结构包括约束 create table nt select * from ot where 1=2; # 复 ...

  6. day41 mysql详细操作

    复习 create table 表名( id int primary key auto_increment, 字段名 数据类型[(宽度) 约束] )engine=innodb charset=utf8 ...

  7. MySQL行(记录)的详细操作一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理

    MySQL行(记录)的详细操作 阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: ...

  8. {MySQL的库、表的详细操作}一 库操作 二 表操作 三 行操作

    MySQL的库.表的详细操作 MySQL数据库 本节目录 一 库操作 二 表操作 三 行操作 一 库操作 1.创建数据库 1.1 语法 CREATE DATABASE 数据库名 charset utf ...

  9. iOS数据库操作之coredata详细操作步骤

    CHENYILONG Blog iOS数据库操作之coredata详细操作步骤 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/ ...

随机推荐

  1. Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

    [Android布局学习系列]   1.Android 布局学习之——Layout(布局)详解一   2.Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)   3.And ...

  2. vs2010中 js的intellisense(智能提示) 和 Snippets(代码块)

    关于智能提示vs2008和vs2010都是很强大了!但是很多我们知道但是也没有怎么合理应用,真是可惜了啊,如果合理用起来那么会提高我们的开发效率和减少出错几率哦,如果没有智能提示,我想我会疯的. 因为 ...

  3. 哪些因素影响ABBYY FineReader 12的识别质量

    任何一款OCR文字识别软件都无法确保100%识别准确,更何况诸多因素的存在,都有可能直接或间接影响识别质量.在使用ABBYY FineReader 12识别或者转换文档的时候也存在同样的状况,今天来给 ...

  4. Postman模拟Request Payload发送请求

    Postman模拟Request Payload发送请求,如下图所示:

  5. 5 -- Hibernate的基本用法 --4 4 数据库方言

    Hibernate底层依然使用SQL语句来执行数据库操作,虽然所有关系数据库都支持使用标准SQL语句,但所有数据库都对标准SQL进行了一些扩展,所以在语法细节上存在一些差异.因此,Hibernate需 ...

  6. Fiddler 抓取 Genymotion 数据包

    对genymotion进行如下设置

  7. windows应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

  8. SpringBoot(十三)-- 不同环境下读取不同配置

    一.场景: 在开发过程中 会使用 开发的一套数据库,测试的时候 又会使用测试的数据库,生产环境中 又会切换到生产环境中.常用的方式是 注释掉一些配置,然后释放一下配置.SpringBoot提供了在不同 ...

  9. getopenfilename多选文件/文件夹问题和getsavefilename另存为路径

    关于使用getopenfilename多选多个文件是可以的. 以下是多选文件的代码 bool GetNeedOpenFilePath(vector<tstring>& vectFi ...

  10. 用MyEclipse将Maven Dependencies中的jar包导出

    1.右击pom.xml文件,选择Run As  ——> Maven build… 2.在打开的页面中,如图输入“dependency:copy-dependencies”,后点击“Run”即可 ...