DataSet

这个玩意没什么好讲的,当ado.net查询出有多张表集合的数据返回时,这个时候就会使用到DataSet.

DataTable

//表之间直接赋值 dt2=dt1; 两者指向同一内存空间
//表克隆 DataTable dt2=dt1.Clone(); 复制架构和约束,但不复制数据
//表复制 DataTable 2=dt1.Copy 复制架构和数据,但不复制约束

DataTable table2 = table.Clone();
table.Merge(table2);  //合并两表

DataTable dt3=new DataTable("表名");

DataTable dt3=new DataTable();

DataColumn

DataColumn 是用来模拟物理数据库中的列。DataColumn 的组合组成了 DataTable 中列的架构。生成 DataTable 架构的方法就是向 DataColumnCollection 中添加DataColumn 对象来生成架构。同物理数据库一样,列是有类型的,比如 varchar, datatime, int 等, DataColumn 有 DataType 属性表示这一列所存储的数据种类。由于 DataTable 所包含的数据通常合并回其原始数据源,因此必须使其数据类型与数据源中的数据类型匹配。

DataTable table = new DataTable();
table.Columns.Add(new DataColumn("columns1",System.Type.GetType("System.String")));  //为DataTable添加列方法一
table.Columns.Add(new DataColumn("columns2",typeof(int)));  //为DataTable添加列方法二

DataColumn colu = new DataColumn();
colu.ColumnName = "";
colu.DataType = typeof(int);
table.PrimaryKey = new DataColumn[] {colu};   //将列设为主键

colu.AutoIncrement = true;  //将列设为自增
colu.AutoIncrementSeed = 1;  //自增起始数
colu.AutoIncrementStep = 1;  //每次自增数

循环表列示列

public static string[] GetColumnsByDataTable(DataTable dt)
       {
           string[] strColumns = null;

if (dt.Columns.Count > 0)
           {
               int columnNum = 0;
               columnNum = dt.Columns.Count;
               strColumns = new string[columnNum];
               for (int i = 0; i < dt.Columns.Count; i++)
               {
                   strColumns[i] = dt.Columns[i].ColumnName;
               }
           }

return strColumns;
       }

DataRow

DataRow 模拟的是数据库中的一行。使用 HasVersion 和 IsNull 属性确定特定行值的状态。

DataRow[] rows = table.Select(); //获得表的所有行数据

DataRow[] rowsTwo = table.Select("id>2"); //带条件获取所有行数据

DataRow[] rows = table.Select(); //获得表的所有行数据

DataTable dx = new DataTable();
dx.ImportRow(row); //将DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。

table.Rows.Add(new object { }); //添加行

DataView

DataView dv = table.DefaultView;
DataView dv2 = new DataView();
DataView dv3 = new DataView(table);

一旦你有了DataView对象,你可以利用它的属性来建立你希望用户见到的数据行集。一般,你可以使用下列属性:

  • RowFilter
  • Sort

前者可以定制视图中可见数据应匹配的规则。而后者通过表达式来进行排序。当然你可以使用这两者的任意组合。

设置过滤 RowFilter是一个可读写的属性,用来读取和设置表过滤的表达式。

public virtual string RowFilter {get; set;}
你可以用列名,逻辑和数字运算符和常量的任意合法组合组成表达式。以下是一些例子:

dv.RowFilter = "Country = 'USA'";
dv.RowFilter = "EmployeeID >5 AND Birthdate < #1/31/82#"
dv.RowFilter = "Description LIKE '*product*'"

让我们来看一下过滤器的基本规则和运算符。
过滤字符串是表达式的逻辑连接。可以用AND,OR,NOT来连接成一个较短的表达式,也可以使用圆括号来组成子句,指定优先的运算。
通常包含列名的子句同字母、数字、日期或另一个列名进行比较。这里,可以使用关系运算符和算术运算符,如>=, <, >, +, *, % (取模)等等。
如果要选取的行并不能方便地通过算术或逻辑运算符表达,你可以使用IN操作符。以下代码显示如何选取一个随机行:

dv.RowFilter = "employeeID IN (2,4,5)"

你也可以使用通配符*和%,它们同LIKE运算符一起使用时显得更有用。它们都表示任意数量的字符,可以相互替代使用。
请注意,如果在LIKE子句中已经有了*或%字符,你必须用方括号将其括起,以免歧义。如果很不幸,字符串中方括号本身也存在了,那么它也必须用将本身括起。这样,匹配语句会如下所示:

dv.RowFilter = "Description LIKE '[[]*[]]product[[]*[]]"

通配符只允许在过滤字符串的开头或结尾处使用,而不能在字符串中间出现。例如,下列语句会产生运行时错误:

dv.RowFilter = "Description LIKE 'prod*ct"

DataView去重 ToTable()

dv.ToTable(true,"列名");

DataSet,DataTable,DataColumn,DataRow的常用操作的更多相关文章

  1. dataset datatable datacolums datarow

    DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...

  2. DataSet,DataTable与DataRow的复制方法

    DataSet 对象是支持 ADO.NET的断开式.分布式数据方案的核心对象 ,用途非常广泛.我们很多时候需要使用其中的数据,比如取得一个DataTable的数据或者复制另一个DataTabe中的数据 ...

  3. 转:DataSet、DataTable、DataRow、DataColumn区别及使用实例

    DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...

  4. DataSet、DataTable、DataRow、DataColumn区别及使用实例

    DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...

  5. DataSet、DataTable、DataRow区别

     DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据 ...

  6. DataTable、DataRow、DataColumn用法

    转载csdner 发布于2018-08-17 17:03:30 阅读数 4375  收藏   DataSet 表示数据在内存中的缓存. 属性 Tables  获取包含在 DataSet 中的表的集合. ...

  7. DataSet & DataTable &DataRow 深入浅出

    本篇文章适合有一定的基础的人去查看 ,最好学习过一定net 编程基础在来查看此文章. 1.概念 DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖 ...

  8. .NET中DataTable的常用操作

    一.目的 在各种.NET开发中,DataTable都是一个非常常见且重要的类型,在与数据打交道的过程中可以说是必不可少的对象. 它功能强大,属性与功能也是相当丰富,用好的话,使我们在处理数据时,减少很 ...

  9. DataSet DataTable操作

    DataSet ds = new DataSet();            DataTable dt = new DataTable("OrderList");          ...

随机推荐

  1. linux rpm包的编译

    有些软件包的特性是编译者选定的,如果编译未选定此特性,将无法使用.rpm包的版本落后于源码包. 因此需要定制安装,也就是手动编译安装. 编译需要编译环境. 编译的过程如下: 1.下载源码 2.执行 t ...

  2. js 判断滚动条的滚动方向

    以下代码实现判断页面的滚动条的滚动方向: var sign = 80;//定义默认的向上滚与向下滚的边界 window.onscroll = window.onresize = function(){ ...

  3. python3 字典属性

    1.字典创建 >>> D={} >>> D {} >>> D2={:,(,):::'d'}} #冒号构造 1.使用 {  }和 : 直接创建 &g ...

  4. UniDAC 安装教程

    翻译: 1.解压后把UniDAC文件夹直接复制到你专门用来存放第三方控件的地方(这一步根据自己的喜好,可以跳过这一步)2.在UniDAC\Source\Delphi21文件夹中找到Make.bat文件 ...

  5. 分享知识-快乐自己:Maven 无法加载 Oracle 数据库驱动源

    由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库. 手动添加到本地仓库需要本地有 ...

  6. GitHub基本使用

    什么是GitHub? GitHub是用于版本控制和协作的代码托管平台.它可以让您和其他人在任何地方一起工作 本教程教你如GitHub必需资源,如仓库,分支,提交和拉请求.您将创建自己的Hello Wo ...

  7. python实现列队

    1 列队定义 队列是项的有序结合,其中添加新项的一端称为队尾,移除项的一端称为队首.当一个元素从队尾进入队列时,一直向队首移动,直到它成为下一个需要移除的元素为止. 最近添加的元素必须在队尾等待.集合 ...

  8. Debian for ARM

    /************************************************************************* * Debian for ARM * 说明: * ...

  9. [基本操作]线段树分治和动态dp

    不知道为什么要把这两个没什么关系的算法放到一起写...可能是都很黑科技? 1.线段树分治 例题:bzoj4026 二分图 给你一个图,资瓷加一条边,删一条边,询问当前图是不是二分图 如果用 LCT 的 ...

  10. PLSQL查询最近编绎、创建、修改过的过程函数

    SELECT * FROM User_Objects t WHERE t.Object_Type IN ('PROCEDURE', 'PACKAGE BODY', 'FUNCTION') AND t. ...