C#中DataTable的一些用法
转自: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的一些用法相关推荐
- 谨慎Asp.net中static变量的用法
谨慎Asp.net中static变量的用法 .Net技术 2007-01-30 22:17:37 阅读925 评论11 字号:大中小 谨慎Asp.net中static变量的用法 在.Net平台下进行C ...
- matlab roundn函数_columns函数的使用方法 matlab中round函数具体用法
Excel中column函数的使用方法是什么?其实小编会说分手是想被挽留,你却顺口祝小编自由. 只读属性,返回 TextStream 文件中当前字符位置的列号. 语法: =Column(referen ...
- 【淘宝ERP-资料收集】关于Datatable的一些用法
C# DataTable.Select() 筛选数据 返回新DataRow[] 有时候我们需要对数据表进行筛选,微软为我们封装了一个公共方法,DataTable.Select(),其用法如下: Sel ...
- PHP中魔术方法的用法
PHP中魔术方法的用法 /** PHP把所有以__(两个下划线)开头的类方法当成魔术方法.所以你定义自己的类方法时,不要以 __为前缀. * */// __toString.__set.__get__ ...
- 简单介绍SQLserver中的declare变量用法
这篇文章主要介绍了SQLserver中的declare变量用法,sql中declare是声明的意思,就是声明变量的,这个一般是用在函数和存储过程中的.感兴趣的可以来了解一下 平时写SQL查询.存储过程 ...
- python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...
- 关于sql中case when的用法
Oracle CASE WHEN 用法介绍 1. CASE WHEN 表达式有两种形式 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ...
- 【node】express中mysql的基本用法、连接池的使用、事务的回滚
[node]express中mysql的基本用法.连接池的使用 安装mysql包 mysql的配置信息 mysql基本操作 查询mysql并渲染数据 mysql插入操作 首先在html页面写上< ...
- git 只merge部分_[Skill]俩小时掌握多人开发中git的主要用法
前言 几个月前看完了git文档,但是在实际开发中对很多git命令的具体影响仍有疑惑,比方说pull.fetch和rebase三个命令和检出位置拎不清. Git - Bookgit-scm.com 安 ...
最新文章
- LeakCanary 源码解析
- Windows使用VNC连接ubuntu
- java 中数组与list_Java中List与数组相互转换实例分析
- springboot链接MySQL线程池_SpringBoot中的数据库连接池
- leetcode645. 错误的集合
- 一套完整的Selenium自动化测试框架设计实战,这次38K, 妥了
- c语言公路竖曲线要素代码,竖曲线要素
- SCHNOKA施努卡:锂电池密封性焊接质量视觉检测
- 聚合数据iOS SDK 12306火车票查询订票演示示例
- [SAP ABAP开发技术总结]搜索帮助Search Help (F4)
- JSON.parse报错: Unexpected identifier
- 华为交换机批量加入 Vlan 方法
- 高等代数 具有度量的线性空间(第10章)4 酉空间,酉变换,埃尔米特变换,正规变换
- redis之读写分离
- 金蝶KIS商贸版实现'条码标签打印'功能进行商品条码打印
- android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析
- [iOS开发]Category、Extension和关联对象
- ## 计算机学院实验报告 课程名称 .NET程序设计 实验名称 实验三 HTML网页设计
- Sping系列课程--工厂
- 使用插件ajaxfileupload通过ajax方式上传文件,在火狐下出错
热门文章
- 沐创密码芯片获奖!中国电子学会年度技术发明一等奖,颁给国产集成电路公司...
- 2021未来科学大奖揭晓:SARS病原发现者、上海交大张杰教授等4人获得百万奖金...
- 我们从2021谷歌I/O大会给的谜题中发现了隐藏信息
- 谷歌向公众开放Fuchsia OS:支持手机电脑IoT,华为鸿蒙与之对标
- 特斯拉的三季度:车卖很多、车主很烦、股价很魔幻
- 威马新车型,率先放话搭载L4自动驾驶
- 2D图片3秒变立体,变换视角流畅自然:Adobe实习生的智能景深算法,登上顶级期刊...
- 千万不要相信程序员在加班时间写的代码!
- 数据仓库中的维度表和事实表概述
- CJIS安全政策:企业如何确保FIPS合规性?