https://blog.csdn.net/qq_39657909/article/details/80615465

一、特点介绍
1、表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。
2、在SqlDataAdapter和DataSet之间没有直接连接。当完成SqlDataAdpater.Fill(DataSet)调用后,两个对象之间就没有连接了。
二、使用介绍

1、创建SqlDataAdapter

  1. string strSQL=“Select * from Customers”;
  2. SqlCommand cmd=new SqlCommand(strSQL,cn);
  3. SqlDataAdapter da=new SqlDataAdapter();
  4. da.SelectCommand=cmd;

2、SqlDataAdapter构造函数

①string strConn=“Provider=.....”;

  1. string strSQL=“select * from Customers”;
  2. SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);

②string strConn=“Provider=.....”;

  1. SqlConnection cn=new SqlConnection(strConn);
  2. SqlDataAdapter da=new SqlDataAdapter(“select * from Customers”,cn);

③string strConn=“Provider=.....”;

  1. string strSQL=“select * from Customers”;
  2. SqlConnection cn=new SqlConnection(strConn);
  3. SqlCommand cmd=new SqlCommand(strSQL,cn);
  4. SqlDataAdapter da=new SqlDataAdapter(cmd);

3、从查询中获取结果

①使用Fill方法

  1. SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);
  2. DataSet ds=new DataSet();
  3. da.Fill(ds);   //这里ds中的表名为Table

②使用Fill方法创建DataTable对象和DataColumn对象

  1. SqlDataAdapter da=new SqlDataAdapter(strSQL,strConn);
  2. da.TableMapping.Add(“Table”,“Customers”);
  3. DataSet ds=new DataSet();
  4. da.Fill(ds);

③使用重载Fill方法

  1. SqlDataAdapter.Fill(DataSet,“Customers”);
  2. SqlDataAdapter.Fill(DataTable);
  3. SqlDataAdapter.Fill(DataSet,intStartRecord,intNumRecords,“TableName”);

④开放和关闭连接

如果调用了一个SqlDataAdapter对象的Fill方法,而SelectCommand属性的Connection关闭了,那么SqlDataAdapter就会开放一个连接,然后提交查询、获取结果、最后关闭连接。如果在调用前开放了Connection,那么操作之后仍然保持开放。

  1. SqlDataAdapter daCustomers,daOrders;
  2. daCustomers=new SqlDataAdapter(“Select * from Customers”,cn);
  3. daOrders=new SqlDataAdapter(“Select * from Orders”,cn);
  4. DataSet ds=new DataSet();
  5. cn.Open();
  6. daCustomers.Fill(ds);
  7. daOrders.Fill(ds);
  8. 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对象的更多相关文章

  1. 数据库学习任务四:数据读取器对象SqlDataReader、数据适配器对象SqlDataAdapter、数据集对象DataSet

    数据库应用程序的开发流程一般主要分为以下几个步骤: 创建数据库 使用Connection对象连接数据库 使用Command对象对数据源执行SQL命令并返回数据 使用DataReader和DataSet ...

  2. ADO.NET五大对象理论和实践(草稿)

    一.ADO.NET五大对象理论 1. Connection:与数据源建立连接. 2. Command:对数据源执行SQL命令并返回结果. Command对象在执行的的时候有几个比较重要的方法,如Exe ...

  3. C# ADO.NET SqlDataAdapter中传递参数

    ADO.NET的SQL语句中,往往不是静态的语句,而是需要接受传递过来的参数,比如典型的登录功能,需要查找指定的用户名: string sqlQuery = "SELECT * FROM W ...

  4. C#与数据库访问技术总结(十五)之 DataAdapter对象代码示例

    DataAdapter对象代码示例 下面的代码将说明如何利用DataAdapter对象填充DataSet对象. private static string strConnect=" data ...

  5. C#与数据库访问技术总结(十四)之DataAdapter对象

    DataAdapter对象 DataAdapter对象主要用来承接Connection和DataSet对象. DataSet对象只关心访问操作数据,而不关心自身包含的数据信息来自哪个Connectio ...

  6. ADO.NET对象之 DataTable

    ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源. DataTable对象表示保存在本机内存中的 ...

  7. 使用SqlDataAdapter时,需要注意的几点

    1.SqlDataAdapter内部通过SqlDataReader获取数据,而默认情况下SqlDataReader不能获知其查询语句对应的数据库表名,所以下面的代码: string strConn,s ...

  8. ADO.NET详解----核心对象的使用

    一.Connection对象 指定某个具体数据源以及提供登陆方式及用户名与密码. Connection对象的主要成员: 1.ConnectionString属性:连接字符串,指定要操作的数据库以及登录 ...

  9. MSSQL - SqlDataAdapter连接数据库提高性能用法

    SqlDataAdapter 与 SqlConnection 和 SqlCommand 一起使用,以便在连接到 SQL Server 数据库时提高性能. SqlDataAdapter 的这一实现自动打 ...

随机推荐

  1. vue常用插件之视频播放(rtmp m3u8)

    vue-video-player(5.0.2) 最近我的项目做了一个监控视屏的显示,后台提供的视屏格式是rtmp 后来又改为m3u8,没成功,原因是占用内存过大,所以取消了这种方式 一.安装 npm ...

  2. 使用word时在方块中打钩

    ☑ 方法一: 第一步: 输入:2611 第二步: 选中2611 第三步: 按Alt + X Get :  ☑ 同样:用2610代替2611会得到☐ ☐2610 ☑2611 方法二 1.选择[插入]-- ...

  3. 常用sql 2018.08.31

    concat()函数 concat(str1, str2,...)功能:将多个字符串连接成一个字符串 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null. 如:CONCA ...

  4. linux中Jenkins启动/重启/停止命令

    简要记录一下Linux 中Jenkins启动/重启/停止命令 启动service jenkins start1重启service jenkins restart1停止service jenkins s ...

  5. 安装 centos8.1

    阿里云镜像下载链接 http://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/ 选择 CentOS-8.1.1911-x86_64-dvd1.iso ...

  6. Windows系统对拍程序

    Windows系统对拍程序,其中包含c++11用法,请使用c++11标准编译.此对拍程序会在发现错误时显示错误行号以及对应内容,方便比对. 此对拍程序自动使用g++对源代码进行编译.如果出现找不到g+ ...

  7. HashMap,ConcurrentHashMap原理。Collection(list,set,map集合区别)。和CAS

    collection里面有什么子类?(list和set是实现了collection接口的.) List: 1.可以允许重复的对象(可重复,有序集合).2.可以插入多个null元素.3.常用的实现类有 ...

  8. HDR视频生态圈追踪

    截止目前,HDR视频生态圈已经产生了巨大的变化.本文将更新旧有的HDR生态圈范围,并更清晰地描述当前HDR视频生态圈.本文译自The HDR video ecosystem tracker,原作者为 ...

  9. 计蒜客 - A1603.天上的星星

    二维差分,理论上很简单,虽然我实际上做的时候一堆问题 1.边界的星星包含在内,需要在减去的时候往前挪一个 2.我是从0开始的,循环的时候非常不方便 3.x1, x2, y1, y2总是弄混 #incl ...

  10. memcached和redis对比

    关于memcached和redis的使用场景,总结如下:两者对比: redis提供数据持久化功能,memcached无持久化. redis的数据结构比memcached要丰富,能完成场景以外的事情: ...