1、对表的初始化
      //创建表
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 相关的更多相关文章

  1. DataTable相关操作,筛选,取前N条数据,获取指定列数据

    DataTable相关操作,筛选,取前N条数据,获取指定列数据2013-03-12 14:50 by Miracle520, 2667 阅读, 0 评论, 收藏, 编辑 1 #region DataT ...

  2. DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据

    #region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回      /// <summary>      /// Dat ...

  3. DataTable相关

    设置主键列:  this.tableTestData.PrimaryKey = new DataColumn[] { this.tableTestData.Columns[0] };

  4. [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类

    [.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类 本节导读:本节主要介绍通过序列 ...

  5. c#结构体、打他table、excel、csv互转

    1.csv相关 public static class CsvHelper { /// <summary> /// 根据csv路径获取datatable /// </summary& ...

  6. horizon源码分析(二)

    源码版本:H版 一.简要回顾 对于请求: 地址:/dashboard/admin/instances/ 方式:POST 参数: instances_filter_q: action:instances ...

  7. C# LIstbox 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题

    解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题 分类: winform2008-05-24 02:33 2592人阅读 评论(11) 收藏 举报 winf ...

  8. 解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合”

    解决WinForm下ListBox控件“设置DataSource属性后无法修改项集合” 最近更新: 2013-2-15    587   很少写WinForm程序第一次使用ListBox控件就遇到了比 ...

  9. 嵌入式单片机STM32应用技术(课本)

    目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...

随机推荐

  1. The sixth day of Crawler learning

    爬取我爱竞赛网的大量数据 首先获取每一种比赛信息的分类链接 def get_type_url(url):    web_data = requests.get(web_url)    soup = B ...

  2. apium环境搭建(mac)

    appium 环境搭建 安装homebrew(Mac OSX上的软件包管理工具) $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuse ...

  3. dockerfile部署tomcat+jdk

    FROM centos: MAINTAINER www.ctnrs.com ENV VERSION= RUN yum install wget curl unzip iproute net-tools ...

  4. knn识别简单验证码

    参考 https://www.biaodianfu.com/knn-captcha-recognition.html 内容大致一样,只是根据自己的想法加入了一些改动 KNN(k近邻算法) 算法原理请看 ...

  5. 记一次 爬取LOL全皮肤原画保存到本地的实例

    #爬取lol全英雄皮肤 import re import traceback # 异常跟踪 import requests from bs4 import BeautifulSoup #获取html ...

  6. j接近50道经典SQL练习题,附建表SQL解题SQL

    说明 本文章整理了47道常见sql联系题,包括建表语句,表结构,习题列表,解题答案都涵盖在本文章内.文末提供了所用SQL脚本下载链接.所有解题答案都是本人自己写的,广大读者如果在阅读使用中,有任何问题 ...

  7. Springboot 添加热部署

    Pom 文件 添加依赖 添加插件 修改idea ,启动自动部署 <!--配置热部署--> <dependency> <groupId>org.springframe ...

  8. 某个应用的CPU使用率居然达到100%,我该怎么办?

    > 本文是通过学习极客时间专栏<Linux性能优化实战>05 | 基础篇:某个应用的CPU使用率居然达到100%,我该怎么办? ## CPU 使用率 *** 为了维护 CPU 时间, ...

  9. vmware 14 激活码

    VMware虚拟机已升级至14版本,之前的12版本的秘钥已经无法使用,在此分享一下VMware Workstation 14永久激活密钥: CG54H-D8D0H-H8DHY-C6X7X-N2KG6 ...

  10. mui选择器和软键盘冲突解决

    只需要让此节点失焦即可: onfocus="this.blur();"