SqlDataAdapter对象
https://blog.csdn.net/qq_39657909/article/details/80615465
一、特点介绍
1、表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。
2、在SqlDataAdapter和DataSet之间没有直接连接。当完成SqlDataAdpater.Fill(DataSet)调用后,两个对象之间就没有连接了。
二、使用介绍
1、创建SqlDataAdapter
- string strSQL=“Select * from Customers”;
- SqlCommand cmd=new SqlCommand(strSQL,cn);
- SqlDataAdapter da=new SqlDataAdapter();
- da.SelectCommand=cmd;
2、SqlDataAdapter构造函数
①string strConn=“Provider=.....”;
- string strSQL=“select * from Customers”;
- SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);
②string strConn=“Provider=.....”;
- SqlConnection cn=new SqlConnection(strConn);
- SqlDataAdapter da=new SqlDataAdapter(“select * from Customers”,cn);
③string strConn=“Provider=.....”;
- string strSQL=“select * from Customers”;
- SqlConnection cn=new SqlConnection(strConn);
- SqlCommand cmd=new SqlCommand(strSQL,cn);
- SqlDataAdapter da=new SqlDataAdapter(cmd);
3、从查询中获取结果
①使用Fill方法
- SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);
- DataSet ds=new DataSet();
- da.Fill(ds); //这里ds中的表名为Table
②使用Fill方法创建DataTable对象和DataColumn对象
- SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);
- da.TableMapping.Add(“Table”,“Customers”);
- DataSet ds=new DataSet();
- da.Fill(ds);
③使用重载Fill方法
- SqlDataAdapter.Fill(DataSet,“Customers”);
- SqlDataAdapter.Fill(DataTable);
- SqlDataAdapter.Fill(DataSet,intStartRecord,intNumRecords,“TableName”);
④开放和关闭连接
如果调用了一个SqlDataAdapter对象的Fill方法,而SelectCommand属性的Connection关闭了,那么SqlDataAdapter就会开放一个连接,然后提交查询、获取结果、最后关闭连接。如果在调用前开放了Connection,那么操作之后仍然保持开放。
- SqlDataAdapter daCustomers,daOrders;
- daCustomers=new SqlDataAdapter(“Select * from Customers”,cn);
- daOrders=new SqlDataAdapter(“Select * from Orders”,cn);
- DataSet ds=new DataSet();
- cn.Open();
- daCustomers.Fill(ds);
- daOrders.Fill(ds);
- cn.Close();
⑤多次调用Fill方法
刷新DataSet中的数据,最简单的解决方法就是清空DataSet(或DataTable),然后再次调用DataAdapter对象的Fill方法。
三、属性方法事件介绍
1、属性
①AcceptChangeDuringFill:确定由DataAdapter所获取的行的RowState(默认为True)。
②DeleteCommand:获取或设置一个 Transact-SQL 语句或存储过程,以从数据集删除记录。
③InsertCommand:获取或设置一个 Transact-SQL 语句或存储过程,以在数据源中插入新记录。
④SelectCommand:获取或设置一个 Transact-SQL 语句或存储过程,用于在数据源中选择记录。
⑤UpdateCommand:获取或设置一个 Transact-SQL 语句或存储过程,用于更新数据源中的记录。
⑥TableMappings:SqlDataAdapter用来将查询的结果映射到DataSet的信息集合。
⑦ContinueUpdate:控制SqlDataAdapter在遇到一个错误之后是否继续提交更改(默认为false)。
2、方法
①Fill:执行存储于SelectCommand中的查询,并将结果存储在DataTable中。
②FillSchema:为存储在SelectCommand中存储的查询获取架构信息。获取查询中的各列名称和数据类型。
③GetFillParameters:为SelectCommand获取一个包含着参数的数组。
④Update:向数据库提交存储在DataSet(或DataTable、DataRows)中的更改。该方法会返回一个整数值,其中包含着在数据存储中成功更新的行数。
3、事件
①FillError:当DataAdapter遇到填充DataSet或DataTable的一个错误时,该事件被触发。
②RowUpdated:向数据库提交一个修改的行之后被触发。
③RowUpdating:向数据库提交一个修改的行之前被触发。
与Command的区别:https://blog.csdn.net/qq_39657909/article/details/80615355
参考:https://blog.csdn.net/chenjinglong/article/details/12291147
SqlDataAdapter对象的更多相关文章
- 数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet
数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...
- ADO.NET五大对象理论和实践(草稿)
一.ADO.NET五大对象理论 1. Connection:与数据源建立连接. 2. Command:对数据源执行SQL命令并返回结果. Command对象在执行的的时候有几个比较重要的方法,如Exe ...
- C# ADO.NET SqlDataAdapter中传递参数
ADO.NET的SQL语句中,往往不是静态的语句,而是需要接受传递过来的参数,比如典型的登录功能,需要查找指定的用户名: string sqlQuery = "SELECT * FROM W ...
- C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例
DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...
- C#与数据库访问技术总结(十四)之DataAdapter对象
DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...
- ADO.NET对象之 DataTable
ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源. DataTable对象表示保存在本机内存中的 ...
- 使用SqlDataAdapter时,需要注意的几点
1.SqlDataAdapter内部通过SqlDataReader获取数据,而默认情况下SqlDataReader不能获知其查询语句对应的数据库表名,所以下面的代码: string strConn,s ...
- ADO.NET详解----核心对象的使用
一.Connection对象 指定某个具体数据源以及提供登陆方式及用户名与密码. Connection对象的主要成员: 1.ConnectionString属性:连接字符串,指定要操作的数据库以及登录 ...
- MSSQL - SqlDataAdapter连接数据库提高性能用法
SqlDataAdapter 与 SqlConnection 和 SqlCommand 一起使用,以便在连接到 SQL Server 数据库时提高性能. SqlDataAdapter 的这一实现自动打 ...
随机推荐
- create_function()代码注入
00x00create_function()函数的简介 适用范围:PHP 4> = 4.0.1,PHP 5,PHP 7 功能:根据传递的参数创建匿名函数,并为其返回唯一名称. 语法: creat ...
- 从0开始学算法--排序(1.12c++利用标准库排序)
1,简单数组按升序排序 sort(a,a+n); #include <algorithm> #include <iostream> #include <cstring&g ...
- 类的成员和属性_python
一.字段和方法分类 方法分类: 二.属性(将方法伪装成字段) 三种伪装方式:@property @perr.setter @perr.deleter 属性使用的场景:分页 三.公有成员和私有成员 私 ...
- SpringData JPA快速入门和基本的CRUD操作以及Specifications条件查询
SpringData JPA概述: SpringData JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作 ...
- win10子系统ubuntu内的nginx启动问题
需用sudo启动,密码是windows密码.
- H5手机端开发问题及解决方案
ios竖屏拍照上传,图片被旋转问题 1.通过第三方插件exif-js获取到图片的方向2.new一个FileReader对象,加载读取上传的图片3.在fileReader的onload函数中,得到的图片 ...
- 网页出现横向滚动条的原因可能是使用bootstrap不当引起
Bootstrap的栅格布局超级方便我们写网页.但是在不是全体配合使用的情况下,会出现横向滚动条的现象. 什么叫不是配合使用的情况呢? >>一种情况是:你使用了row作为你的第一层父元素: ...
- C++-基类的析构函数为什么要加virtual虚析构函数(转)
知识背景 要弄明白这个问题,首先要了解下C++中的动态绑定. 关于动态绑定的讲解,请参阅: C++中的动态类型与动态绑定.虚函数.多态实现 正题 直接的讲,C++中基类采用virtual虚析构函数是 ...
- 开发过程中遇到的代理Proxy配置问题
proxy代理问题 在公司不能访问外网的时候,使用IDEA开发.. 需要配置IDEA Proxy Maven Git IDEA开发工具Proxy配置,使用Spring Boot快读构建工具 Maven ...
- Mysql部分存储引擎介绍
Mysql存储引擎 什么是存储引擎 mysql中建立的库 --> 文件夹 库中建立的表 --> 文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制: ...