SqlDataAdapter 用法详解
SqlCommand是sql命令,执行后通过sqlDataAdapter返回填入DataSet
SqlDataAdapter 有不同的构造函数,
SqlDataAdapter(SqlCommand);
SqlDataAdapter(string,SqlConnection);
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=new SqlCommand();
da.SelectCommand.CommandText=strSql;
da.SelectCommand.CommandTimeout=60;
da.SelectCommand.Connection=myConn;
da.SelectCommand.Transaction=myTrans;
myDataSet=new DataSet();
da.Fill(myDataSet,TableName);
SqlCommand myCmd=new SqlCommand(strSql,myConn);
myCmd.CommandType=CommandType.Text;
myCmd.CommandTimeout=60;
myCmd.Transaction=myTrans;
intAffectedRows=myCmd.ExecuteNonQuery();
其中myConn是连接对象,myTrans是事务对象,strSql是SQL语句,
第一个例子通常是执行有返回数据集的查询如SELECT语句
第二个例子通常是执行INSERT、UPDATE、DELETE语句。
在ADO.NET的DataAdapter其实是由很多个Command组成的。如SelectCommand,DeleteCommand,InsertCommand,UpdateCommand。
每一个Command都是一个独立的Command对象。也就是都有自己的Connection和CommandText。
DataAdapter的所有工作都会落实到一个Command上,比如查询就用SelectCommand。如果SelectCommand没有配置好,就不能执行这个工作。
相应的,如果要执行Update方法,就必须配置好UpdateCommand。而我们通常的定义中(如:OleDbDataAdapter da=new OleDbDataAdapter( "Select * From Authors ",conn);)都只是配置了SelectCommand,所以这时DataAdapter只能执行查询工作,而不能执行Update。
要让DataAdapter执行Update,当然就必须配置好UpdateCommand。但是这个Command的CommandText相当复杂(如果有N个字段的话,就有2*N+1个参数),如果要我们手工去配置,那简直就是不可能的。所以.NET为我们提供那一个自动配置其Command的工具CommandBuilder。用这个Class,我们就能把DataAdapter的所有Command配置好,从而使它能执行这些操作。
CommandBuilder也有两种:OleDbCommandBuilder和SqlCommandBuilder。分别对应OleDb和SQL Server。
SqlDataAdapter 用法详解的更多相关文章
- C#中string.format用法详解
C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...
- @RequestMapping 用法详解之地址映射
@RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- mysql中event的用法详解
一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...
- CSS中伪类及伪元素用法详解
CSS中伪类及伪元素用法详解 伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- AngularJS select中ngOptions用法详解
AngularJS select中ngOptions用法详解 一.用法 ngOption针对不同类型的数据源有不同的用法,主要体现在数组和对象上. 数组: label for value in a ...
- systemctl命令用法详解
systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...
- CSS3的@keyframes用法详解:
CSS3的@keyframes用法详解:此属性与animation属性是密切相关的,关于animation属性可以参阅CSS3的animation属性用法详解一章节. 一.基本知识:keyframes ...
随机推荐
- MySQL Proxy使用
使用MySQL将读写请求转接到主从Server. 一 安装MySQL Proxy MySQL Proxy的二进制版非常方便,下载解压缩后即用. 解压缩的目录为: $mysql-proxy_instal ...
- PK3Err0040
PK3Err0040 The target device is not ready for debugging. Please check your configuration bit setting ...
- C语言中的字符串分割函数
char *strtok(char *s, const char *delim); 分解字符串为一组字符串.s为要分解的字符串,delim为分隔符字符串. 从s开头开始的一个个被分割的串.当没有被分割 ...
- Sail
DescriptionThe polar bears are going fishing. They plan to sail from (sx,?sy) to (ex,?ey). However, ...
- mysql入门 — (2)
创建表 CREATE TABLE 表名称 [IF NOT EXISTS]( 字段名1 列类型[属性] [索引] 字段名2 列类型[属性] [索引] ... 字段名n 列类型[属性] [索引] )[表类 ...
- 浅谈 Vue v-model指令的实现原理 - 如何利用v-model设计自定义的表单组件
原文请点击此链接 链接1 http://www.7zhang.com/index/cms/read/id/234515.html 链接2 http://blog.csdn.net/yangbing ...
- 《Effective C#》快速笔记(四)- 使用框架
.NET 是一个类库,你了解的越多,自己需要编写的代码就越少. 目录 三十.使用重写而不是事件处理函数 三十一.使用 IComparable<T> 和 IComparer<T> ...
- 关于已部署的WCF服务升级的问题
在日常的开发过程中,我们会经常迭代发布不同的版本,所以WCF服务的接口也会经常处于变动的状态,比如在传递实体类中新加一个字段.修改参数名称等等关于服务升级的问题.但是我们不可能让已发布的版本重新引用新 ...
- Git 应用补丁报错 “sha1 information is lacking or useless”
因为现场代码在客户局域网内,不能连接到公司网络,所以一般更新的时候都是打补丁, 然后在客户现场应用补丁,但是最近在应用补丁的时候出现了如下问题: ... fatal: sha1 information ...
- Gradle sync failed: Failed to find Build Tools revision 26.0.2的解决办法
说明在android studio中没有 build tools 的26.0.2的版本,你确认一下,是否是这样: 点击==>android studio的菜单栏中Tools==>andro ...