DataTable 相关
//创建表
DataTable table = new DataTable();
//添加列
table.Columns.Add("ID", typeof(Int32));
table.Columns.Add("Name", typeof(String));
table.Columns.Add("Age", typeof(Int32));
table.Columns.Add("CreateTime", typeof(DateTime));
//添加行和数据
table.Rows.Add(new object[] { , "张三", , DateTime.Now });
table.Rows.Add(new object[] { , "李四", , DateTime.Now });
table.Rows.Add(new object[] { , "王五", , DateTime.Now });
2、添加列的一种方式
DataColumn column;
// Create new DataColumn, set DataType,
// ColumnName and add to DataTable.
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "id";
column.ReadOnly = true;
column.Unique = true;
// Add the Column to the DataColumnCollection.
table.Columns.Add(column);
3、 DataViewRowState.Added 与 Datatable.AcceptChanges() 的一点关系
先上一段MSDN的实例代码。
Select(String, String, DataViewRowState)
static void Main(string[] args)
{
try
{
DataTable customerTable = new DataTable("Customers");
// Add columns
customerTable.Columns.Add("id", typeof(int));
customerTable.Columns.Add("name", typeof(string)); // Set PrimaryKey
customerTable.Columns["id"].Unique = true;
customerTable.PrimaryKey = new DataColumn[]
{ customerTable.Columns["id"] }; // Add ten rows
for (int id = ; id <= ; id++)
{
customerTable.Rows.Add(
new object[] { id, string.Format("customer{0}", id) });
}
//customerTable.AcceptChanges(); // Add another ten rows
for (int id = ; id <= ; id++)
{
customerTable.Rows.Add(
new object[] { id, string.Format("customer{0}", id) });
}
customerTable.AcceptChanges(); string expression;
string sortOrder; expression = "id > 5";
// Sort descending by column named CompanyName.
sortOrder = "name DESC";
// Use the Select method to find all rows matching the filter.
DataRow[] foundRows =
customerTable.Select(expression, sortOrder,
DataViewRowState.Added); PrintRows(foundRows, "filtered rows"); foundRows = customerTable.Select();
PrintRows(foundRows, "all rows"); Console.WriteLine("OK");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
} Console.ReadKey();
}
private static void PrintRows(DataRow[] rows, string label)
{
Console.WriteLine("\n{0}", label);
if (rows.Length <= )
{
Console.WriteLine("no rows found");
return;
}
foreach (DataRow row in rows)
{
foreach (DataColumn column in row.Table.Columns)
{
Console.Write("\t table {0}", row[column]);
}
Console.WriteLine();
}
}
当使用 AcceptChanges 方法后,之前对datatable的 Added、Modified、Unchanged、Deleted 都会被提交。比如下面这一行中 select 将检测不到 AcceptChanges之前的对表的增加。
DataRow[] foundRows =customerTable.Select(expression, sortOrder,DataViewRowState.Added);
DataTable 相关的更多相关文章
- DataTable相关操作,筛选,取前N条数据,获取指定列数据
DataTable相关操作,筛选,取前N条数据,获取指定列数据2013-03-12 14:50 by Miracle520, 2667 阅读, 0 评论, 收藏, 编辑 1 #region DataT ...
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
#region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// <summary> /// Dat ...
- DataTable相关
设置主键列: this.tableTestData.PrimaryKey = new DataColumn[] { this.tableTestData.Columns[0] };
- [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类
[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...
- c#结构体、打他table、excel、csv互转
1.csv相关 public static class CsvHelper { /// <summary> /// 根据csv路径获取datatable /// </summary& ...
- horizon源码分析(二)
源码版本:H版 一.简要回顾 对于请求: 地址:/dashboard/admin/instances/ 方式:POST 参数: instances_filter_q: action:instances ...
- C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题
解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题 分类: winform2008-05-24 02:33 2592人阅读 评论(11) 收藏 举报 winf ...
- 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”
解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合” 最近更新: 2013-2-15 587 很少写WinForm程序第一次使用ListBox控件就遇到了比 ...
- 嵌入式单片机STM32应用技术(课本)
目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...
随机推荐
- 浅谈月薪3万 iOS程序员 的职业规划与成长!(进阶篇)
前言: 干了这么多年的iOS,虽然接触了许多七七八八的东西.技术,但是感觉本身iOS却没有什么质的飞越,可能跟自己接触的项目深度有关,于是决定在学习其他技术的同时,加强自己在iOS方面的学习,提高自己 ...
- 0010 CSS字体样式属性:font-size、font-family、Unicode字体、font-weight、font-style、综合设置、color、 text-align、line-height、text-indent、text-decoration、、、
CSS字体样式属性.调试工具 目标 应用 使用css字体样式完成对字体的设置 使用css外观属性给页面元素添加样式 使用常用的emment语法 能够使用开发人员工具代码调试 1.font字体 1.1 ...
- 分布式架构基石RPC的实现原理
RPC的由来 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. 单一应用架构 当网站流量很小时, ...
- [工具] Git版本管理(知识总结)
对以下文档进行了简要总结,方面复习: [工具] Git版本管理(一)(基本操作) [工具] Git版本管理(二)(分支) [工具] Git版本管理(三)(工作流) [工具] Git版本管理(四)(贡献 ...
- 002使用eop来烧写程序
- 力扣142——环形链表 II
原题 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos ...
- CSS3(5)---伸缩布局(Flex)
CSS3(5)---伸缩布局 有关页面布局之前写过三篇相关文章: 1.CSS(5)---盒子模型 2.CSS(6)---浮动(float) 3.CSS(8)---定位(position) 一.什么是F ...
- 记一次docker镜像导出导入流程
目标:导出测试环境的镜像到本地机器 过程: 测试机: docker save -o /Dockerfile/crontabService/php72.tar lnmp72:v1.4 压缩,要不文件太大 ...
- max_element( )
直接用这个函数 , 会比自己写个for 判断快的多了 . position=max_element(a,a+n)-a; position 代表找到最大元素的位置 , max_element( ) 的 ...
- Spring Framework 源码编译导入
预先准备环境 Window 10 JDK环境 List item Gradle 以及其环境变量配置 spring-framework源码(https://gitee.com/mirrors/Sprin ...