当前位置: 首页 > 编程日记 > 正文

C# DataSet与DataTable的区别和用法

DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable。DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面。

DataSet功能强大有浏览、排序、搜索、过滤、处理分级数据、缓存更改等功能,还可以与XML数据互换。DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作 ADO.NET开发人员为方便数据处理开发出来的,是数据的集合,为解决DataReader的缺陷设计的,DataReader数据处理速度快,但它是只读的,一旦移到下一行就不能查看上一行的数据,DataSet则可以自由移动指针。DataSet的数据是与数据库断开的。DataSet还可用于多层应用程序中,如果应用程序运行在中间层的业务对象中来访问数据库,则业务对象需将脱机数据结构传递给客户应用程序。

DataSet的三种创建方式:

DataTable()   不带参数初始化DataTable 类的新实例。 
  DataTable(string tableName)  用指定的表名初始化DataTable 类的新实例。


DataSet的常用属性介绍 :
          CaseSensitive       指示表中的字符串比较是否区分大小写。如果是区分大小写则为false,默认值为false。 
          ChildRelations       获取此DataTable 的子关系的集合。 
          Columns               获取属于该表的列的集合。 
          Constraints           获取由该表维护的约束的集合。 
          DataSet                获取此表所属的DataSet。DataSet相关信息,可见我以前的一篇文章《数据访问(2)-DataSet》 
          DefaultView          获取可能包括筛选视图或游标位置的表的自定义视图。 
          HasErrors             获取一个值,该值指示该表所属的DataSet 的任何表的任何行中是否有错误。 
          MinimumCapacity  获取或设置该表最初的起始大小。该表中行的最初起始大小。默认值为 50。 
          Rows                    获取属于该表的行的集合。 
          TableName           获取或设置DataTable 的名称。

DataSet常用方法 :

Clear()               清除所有数据的DataTable。 
          Clone()              克隆DataTable 的结构,包括所有DataTable 架构和约束。 
          EndInit()            结束在窗体上使用或由另一个组件使用的DataTable 的初始化。初始化发生在运行时。 
          ImportRow(DataRow row)    将DataRow 复制到DataTable 中,保留任何属性设置以及初始值和当前值。 
          Merge(DataTable table)  将指定的DataTable 与当前的DataTable 合并。 
          NewRow()         创建与该表具有相同架构的新DataRow。
          AcceptChanges()   提交自上次调用AcceptChanges() 以来对该表进行的所有更改。 
      BeginInit()         开始初始化在窗体上使用或由另一个组件使用的DataTable。初始化发生在运行时。

遍历DataSet的方法

foreach(DataTable dt in dataSet.Tables)

foreach(DataRow dr in dt.Rows)

foreach(DataColumn dc in dr.Table.Columns)

Console.WriteLine(dr[dc]);

转载于:https://www.cnblogs.com/vaevvaev/p/6815384.html

相关文章:

Java代码块总结(速读版)

**代码块必须直接定义在类中**,有两种:静态代码块 和 非静态代码块 静态代码块是在类(class文件)加载内存时执行,而非静态代码块是在创建对象(new 类名();)时执行。public class Test{static{ …

matplotlib01-plot折线图、scatter散点图

目录 一、plot绘制折线图一般用法 二、scatter绘制散点图一般用法 记录一下数据可视化的python库matplotlib,研究并纪录一下。 matplotlib.pyplot.subplots函数。subplots可以绘制一个或多个图表。返回变量fig表示整张图片,变量ax表示图片中的各个图表…

C++const关键字作用

修饰普通变量&#xff0c;表示不可修改&#xff08;在定义的时候必须初始化&#xff09; #include <iostream> using namespace std; const int a1 10; int main() {const int a3; // 错误&#xff0c;没有初始化const int a2 10;a1 10; // 错误&#xff0c;不可修…

系统设计规范化攻克了什么问题

系统设计规范化攻克了什么问题(一) 大家好,今天总结下我从事开发工作这几年里,对于项目规范化的一点想法和感触. 在笔者心里,规范是为了解决这个问题而存在的,某些规范都是为了相应问题而存在的.所以仅仅要是能解决这个问题的文档,声明都是规范. 在某时開始设计系统,带人做系统…

五分钟让你了解 Java方法(或者叫函数)

Java方法&#xff08;函数&#xff09;的形式如下&#xff1a; 访问权限 [修饰符] 返回值类型 方法名([参数列表]){方法体 } 访问权限&#xff1a;控制方法(函数)能否在其他“类”中使用有public(可以在其他类中使用)&#xff0c;protected&#xff0c;private(只能在该类中使用…

Bootstrap笔记

Bootstrap使用&#xff1a; 下载Bootstrap&#xff0c;用于生产环境的 Bootstrap不需要安装解压文件到任意目录创建index.html&#xff0c;在该页面编写代码页面起始位置添加<link rel"stylesheet" href"解压文件中css/bootstrap.min.css的路径"/>转…

Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题

目录 一、背景 二、问题 三、解决方案 一、背景 最近对贫僧的个人页https://stackoperator.top进行升级&#xff0c;将Apache升级到2.4.46&#xff0c;PHP升级到7.4.15。升级后没啥问题&#xff0c;但是第二天却宕机了。经过查证是内存不足&#xff0c;导致mysql服务宕机了…

两分钟让你知道什么是“Java重载”

重载&#xff1a;顾名思义&#xff0c;就是重复负载的意思&#xff0c;具体到Java 就是方法名相同&#xff08;重复使用&#xff09;&#xff0c;但参数列表不同。 我们通过几个Java方法来具体说明&#xff1a;public class Addition{public int add(int a, int b){return ab;}…

C++ static

&#xff08;1&#xff09;static表示静态变量。局部变量存储在栈区&#xff0c;在{}结束时被释放。而static修饰的变量存储在全局区&#xff0c;在程序结束时被释放。 &#xff08;2&#xff09;static修饰的变量在外部文件中无法调用&#xff0c;即使使用extern也无法调用。其…

TCO 2015 1A Hard.Revmatching(Hall定理)

\(Description\) 给定一个\(n\)个点的二分图&#xff0c;每条边有边权。求一个边权最小的边集&#xff0c;使得删除该边集后不存在完备匹配。\(n\leq20\)。 \(Solution\) 设点集为\(S\)&#xff0c;与\(S\)中的点相邻的点的并集为\(N(S)\)。 由Hall定理&#xff0c;若存在点集\…

20169211 2016-2017-2 《移动平台开发实践》 第十周实验总结

实验一&#xff1a;简易计算器 实验要求 实现一个简易计算器Calc,支持 - * / 和%运算, 从命令行传入计算数据&#xff0c;比如&#xff1a;java Calc 2 3 结果为 2 3 5 java Calc 8 - 3 结果为 8 - 3 5 java Calc 2 * 3 结果为2 * 3 6 java Calc 10 / 2 结…

wordpress从apache迁移到nginx

目录 一、安装nginx 二、配置文件准备 2.1、进程运行用户 2.2、虚拟主机 2.3、重定向 三、迁移 庚子鼠年最后几天&#xff0c;贫僧发现了内存不足的问题&#xff0c;并在Apache2.4.x下proxy_module、proxy_fcgi_module结合PHP-FPM解决内存不足问题一文中阐述了解决方案。…

zabbix4.0搭建(基于CentOS6.8)

环境服务端&#xff1a;188.188.3.241&#xff0c;系统&#xff1a;centos6.8&#xff0c;mysql&#xff1a;5.7.3&#xff0c;php&#xff1a;5.4.9&#xff0c;nginx&#xff1a;1.12.0一、nginx编译安装NGINX_VERSION1.12.0yum -y install pcre-devel openssl-develcd /usr/…

[Ahoi2008]Meet 紧急集合

1787: [Ahoi2008]Meet 紧急集合 Time Limit: 20 Sec Memory Limit: 162 MBhttp://www.lydsy.com/JudgeOnline/problem.php?id1787Description Input Output Sample Input 6 4 1 2 2 3 2 4 4 5 5 6 4 5 6 6 3 1 2 4 4 6 6 6 Sample Output 5 2 2 5 4 1 6 0 HINT S…

C++ 回调函数

函数指针 函数指针是一种指针&#xff0c;具体来说是&#xff1a;指向函数入口地址的指针。 #include <iostream> using namespace std; double function_t(int val) {return val; } int main() {double (*ptr)(int); // 创建一个函数指针&#xff0c;返回值为doubl…

想知道什么是“成员变量”吗?

成员变量是直接定义在“类”中的量&#xff1b; 特点&#xff1a;成员变量有默认值,具体请看表格 数据类型默认值整型0浮点型0.0char’ ’booleanfalse其他类型null 成员变量的作用就是可以详细描述对象信息 我们来举个例子&#xff1a; public class UserInfo{int age;doubl…

Linux09-网络配置

目录 一、网络配置基础 1.1、网络接口 1.2、设置主机名 二、nmcli配置网络 2.1、配置固定的IP地址等 2.2、连接wifi 三、链路聚合等 一、网络配置基础 1.1、网络接口 先来对比一下RHEL6、RHEL7关于网络接口上的一些差别。 RHEL6 RHEL7 配置文件位置 /etc/sysconfig…

VScode配置ROS环境

创建一个文件夹 使用catkin_make编译工作空间的根目录 使用VScode打开 VScode 中编译 ros 快捷键 ctrl shift B 调用编译&#xff0c;选择:catkin_make:build 可以点击配置&#xff08;右边的小齿轮&#xff09;&#xff0c;修改.vscode/tasks.json 文件 { // 有关 tasks.j…

从Excel中导入数据时,提示“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决办法...

注意&#xff0c;64位系统&#xff0c;用64位的补丁文件; https://www.cnblogs.com/A2008A/articles/2438962.html 操作系统&#xff1a;使用的是64位的Windows Server 2008 解决办法&#xff1a; 这是由于该计算机上没有安装Microsoft Access数据库引擎组件&#xff0c;该组件…

天兔(Lepus)监控系统慢查询分析平台安装配置

转http://suifu.blog.51cto.com/9167728/1770672 被监控端要安装pt工具 1234[rootHE1~]## yum -y install perl-IO-Socket-SSL[rootHE1~]## yum -y install perl-DBI[rootHE1~]## yum -y install perl-DBD-MySQL[rootHE1~]## yum -y install perl-Time-HiRes[rootHE1~]# tar xv…

五分钟让你搞懂什么是“构造方法”

构造方法的形式&#xff1a;类名([参数列表]){} 特点&#xff1a;- 构造方法没有返回值&#xff0c;就算void也不能有&#xff0c;这点与Java方法(或叫函数)不一样&#xff1b;- 一个类中默认无参构造方法&#xff0c;但是当定义了一个有参构造方法时&#xff0c;则默认无参构造…

Linux10-归档、系统间复制文件

目录 一、tar命令 二、scp、sftp命令 三、rsync命令 一、tar命令 tar命令可以归档文件、目录&#xff0c;提取创建的归档文件&#xff0c;同时进行压缩解压缩。使用tar选项时不需要加-&#xff0c;下面是常用的tar选项。 c&#xff0c;创建一个存档。x&#xff0c;提取一个…

pattern

常用的正则表达式 0-9 pattern"[0-9]*" 信用卡 [0-9]{13,16} 银联卡 ^62[0-5]\d{13,16}$ Visa: ^4[0-9]{12}(?:[0-9]{3})?$ 万事达&#xff1a;^5[1-5][0-9]{14}$ QQ号码&#xff1a; [1-9][0-9]{4,14} 手机号码&#xff1a;^(13[0-9]|14[5|7]|15[0|1|2|3|5…

VScode配置CMAKE文件

创建一个vscode文件 记得一定要创建一个build文件夹&#xff0c;因为cmake编译过程中产生的中间文件会放到build文件夹中。 打开VScode 配置文件 launch.json {"version": "0.2.0","configurations": [{"name": "(gdb) Launc…

三分钟了解“Java重写”

要了解“Java重写”&#xff0c;首先要知道“继承”&#xff0c;继承是一种基于已有类&#xff08;父类&#xff09;创建新类&#xff08;子类&#xff09;的一种方式 下面的Son类继承了Father类 public class Father(){public void eat(String name,int age){System.out.prin…

2017 .NET 開發者須知

筆記&#xff0d;Scott Hanselman 的 2017 .NET 開發者須知 转载http://blog.darkthread.net/post-2017-01-16-dotnet-dev-should-know-2017.aspx Scott Hanselman 前兩天有篇文章&#xff0d;What .NET Developers ought to know to start in 2017&#xff0c;我的工作&#x…

Linux11-RPM软件包和YUM源

目录 一、rpm 二、yum 一、rpm 红帽开发了RPM软件包管理器&#xff0c;RPMRedhat Package Manager。RPM软件包名的格式为<name>-<version>-<release>.<arch>.rpm。比如&#xff0c;httpd-tools-2.4.6-7.el7.x86_64.rpm&#xff0c;其中namehttpd-to…

SQL Server 与 ORACLE 的区别

sql server 与 oracle的区别&#xff1a; DBMS 数据库管理系统 1.数据类型不同。 sql server 的数据类型&#xff1a;int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima, float,bit…… oracle 的数据类型&#xff1a;number(…

php如何定时执行任务

PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法&#xff0c;下面就让我们来看…

Java的多态(详尽版)

父类类型&#xff08;比如Mammal&#xff09;的变量指向子类&#xff08;比如Cat&#xff09;创建的对象&#xff0c;使用该变量调用父类中一个*被子类重写*的方法&#xff08;比如move方法&#xff09;&#xff0c; 则父类中的方法呈现出不同的行为特征&#xff0c;这就是多态…