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 的这一实现自动打 ...
随机推荐
- SpringBoot2.x打包成war(看这篇就够了)
springboot默认打包成jar,如果想打包成war,则需要做以下三步. 1.修改pom.xml文件 a.将jar改成war <groupId>com.test</groupId ...
- 机器学习作业(四)神经网络参数的拟合——Python(numpy)实现
题目下载[传送门] 题目简述:识别图片中的数字,训练该模型,求参数θ. 出现了一个问题:虽然训练的模型能够有很好的预测准确率,但是使用minimize函数时候始终无法成功,无论设计的迭代次数有多大,如 ...
- 项目转移时发生的错误<springboot+mybatis(xml逆向工程自动生成)>
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'app ...
- webpack 之loader
webpack的作用: 是 用来处理我们写的js代码.并且会自动处理js之间相关的依赖. 但是,开发中我们不仅仅有基本的js代码处理,还需要加载css,图片,也包括一些高级的 将ES6转成ES5代 ...
- ApiBehaviorOptions 统一模型验证配置不生效
ApiBehaviorOptions 的统一模型验证配置一定要放到(.AddMvc)后面.
- ECMAScript基本语法——①与HTML的结合方式
内部JS: HTML页面内定义一个script标签,标签内就是JS代码一般情况会写到特定的位置,写到head标签内 外部JS: HTML页面内定义一个script标签,使用src加载外部的JS文件 注 ...
- NPOI _导出exl(简单应用)
1. 导出exl表格,创建表格导出到客户端 public static MemoryStream Export_Table<T>(List<T> datalist) { Mem ...
- linux异常 - 网卡故障
问题描述: 弹出界面eth0: 错误:没有找到合适的设备:没有找到可用于链接System eth0 的设备 解决方案: 排错步骤如下: 1:查看系统是否识别相应网卡(发现没有eth0网卡存在): 根据 ...
- dp--C - Mysterious Present
C - Mysterious Present Peter decided to wish happy birthday to his friend from Australia and send hi ...
- Java连载77-Integer常用方法、Integer、int、String三者相互转化、自动装箱、自动拆箱
一.关于Integer中常用的方法 package com.bjpowernode.java_learning; public class D77_1_ { public static void ...