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");

整合代码

DataTbale取值的更多相关文章

  1. 如何解决流程开发中SheetRadioButtonList页面取值问题

    分享一个常见的取值问题. 应用场景: SheetRadioButtonList控件,点击其中一项执行事件操作.如果是页面加载的情况下,值就无法取到. 具体原因如下: 我给SheetRadioButto ...

  2. jQuery radio的取值与赋值

    取值: $("input[name='radioName']:checked").val(); 赋值: $("input[name='radioName'][value= ...

  3. python通过函数改变变量取值

    严格讲应该是"通过函数调用,改变引用对象".python中,要区分"变量名"和"对象" 如果是类的对象,是引用类型的,那么可以通过函数调用, ...

  4. jsf初学selectOneMenu 绑定与取值

    jsf 的selectOneMenu 最后生成的<select>标签.这里涉及到一个binding 起初一直不知道是干嘛的,后来参考了其他文章.就相当于在asp.net 中如:<as ...

  5. CYQ.Data 快速开发之UI(赋值、取值、绑定)原理

    昨夜园子猴子问了几个我CYQ.Data使用的小问题,经过简单解答后,他表示“妈妈再也不用担心我的学习",并于事后以资鼓励,希望这框架越走越好. 除了技术上的交流,双方在生活,S上面的问题上也 ...

  6. EditText的inputType常用取值

    最近经过实际试验,总结了InputType几个常用取值表示的含义: 1.none, text, textVisiblePassword: 无任何输入限制 2.textMultiLine: 允许多行输入 ...

  7. jquery select取值,赋值操作

    select">jquery select取值,赋值操作 一.获取Select 获取select 选中的 text : $("#ddlRegType").find( ...

  8. Jquery 关于span标签的取值赋值用法

    span是最简单的容器,可以当作一个形式标签,其取值赋值方法有别于一般的页面元素. //赋值 $("#spanid").html(value) //取值 $("#span ...

  9. jQuery radio取值,checkbox取值,select取值

    语法解释: $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkTex ...

随机推荐

  1. Android应用程序的生命周期

    转自Android应用程序的生命周期 在对一个简单的Hello World工程进行项目结构剖析后,我们接着来学习下一个Android应用程序的生命周期是怎么样的,以便为后面的开发有个垫下良好的基石~ ...

  2. 【POJ3691】 DNA repair (AC自动机+DP)

    DNA repair Time Limit: 2000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64u Description B ...

  3. BlockingQueue队列学习

    今天看了下BlockingQueue的几种实现,记录下以便以后复习. 首先来看一下BlockingQueue的家族成员: BlockingQueue除了先进先出外,还有两个操作:在队列为空时,获取元素 ...

  4. HDU 4430 Yukari's Birthday (二分+枚举)

    题意:给定一个n(18 ≤ n ≤ 10^12),一个等比数列k + k^2 + .......+ k^r = n 或者 = n-1,求出最小的k*r,如果最小的不唯一,则取r更小的 分析:两个未知数 ...

  5. 进程创建函数fork()、vfork() ,以及excel()函数

    一.进程的创建步骤以及创建函数的介绍 1.使用fork()或者vfork()函数创建新的进程 2.条用exec函数族修改创建的进程.使用fork()创建出来的进程是当前进程的完全复制,然而我们创建进程 ...

  6. @repository注解

    Spring的注解形式:@Repository.@Service.@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean. @Repository.@Service.@C ...

  7. Django-RQ首页、文档和下载 - Django 和 RQ 集成 - 开源中国社区

    Django-RQ首页.文档和下载 - Django 和 RQ 集成 - 开源中国社区 Django-RQ 项目实现了 Django 框架和 RQ 消息队列之间的集成.

  8. SQL 查询条件放在LEFT OUTER JOIN 的ON语句后与放在WHERE中的区别

    这两种条件放置的位置不同很容易让人造成混淆,以致经常查询出莫名其妙的结果出来,特别是副本的条件与主表不匹配时,下面以A,B表为例简单说下我的理解. 首先要明白的是: 跟在ON 后面的条件是对参与左联接 ...

  9. bzoj 2741 分块+可持久化trie

    多个询问l,r,求所有子区间异或和中最大是多少 强制在线 做法: 分块+可持久化trie 1.对于每块的左端点i,预处理出i到任意一个j,()i,j)间所有子区间异或和中最大为多少,复杂度O(\(n\ ...

  10. HTTP协议的特点

    HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POST.每种方法规定了客户与服务器联系的 ...