• DataAdapter对象(数据适配器)


      DataAdapter与DataSet紧密配合以创建数据的内存表示。

    DataReaderDataAdapter区别】:

      主要在于他们与数据库的连接方式不同:

        DataReader对象通过打开一个连接,然后执行SQL命令,再检索数据库中的数据,当不再进行操作时关闭连接;

        DataAdapter对象仅仅在需要填充DataSet对象时才使用数据连接,完成操作后将释放所有的服务器资源。

    DataAdapter对象用于填充DataSet和更新数据库,可以将它看作连接DataSet与数据库的桥梁,通过它来获取或更新数据。

      【常用属性】:SelectCommand:用于数据源中选择记录的Command对象。

      【常用方法】:Fill:向DataSet的数据表中填充数据;

             Update:将DataSet中的数据回传到数据库中。

    【DataAdapter对象的使用】:

      1、填充数据集

        a、创建数据库连接对象;

        b、创建查询数据库的SQL命令;

        c、创建DataSet对象;

        d、创建DataAdapter对像;

          【语句】:SqlDataAdapter  SqlDataAdapter对象=new  SqlDataAdapter(SQL命令,数据库连接对象);

        e、调用DataAdapter对象的Fill()方法填充DataSet对象。

          【语句】:SqlDataAdapter对象.Fill(数据集对象,需要填充的数据表的名称);

    【注意】:若需要填充的数据表不存在,数据集将自动创建一个数据表,然后再填充数据,否则将直接填充数据。

      当访问DataSet中的数据时,需要对DataSet进行解析。

        1、访问DataSet对象中的DataTable对象;

          【语句】:DataSet对象.Table[表索引或表名];

        2、访问DataTable对象中的DataRow对象;

          【语句】:DataSet对象.Table[表索引或表名].Rows[行索引];

        3、访问DataRow对象中的某列数据;

          【语句】:DataSet对象.Table[表索引或表名].Rows[行索引][列索引或列名];

    【注意】:表索引、行索引以及列索引都从0开始。当获取DataRow对象中某列的数据时需要进行显式类型转换。

      2、更新数据源:

        a、创建CommandBuilder对象,生成更新数据库的相关命令;

          【语句】:SqlCommandBuilder  SqlCommmandBuilder对象=new  SqlCommandBuilder(SqlDataAdapter对象);

          【注意】:CommmandBuilder对象用于通过DataAdapter对象的查询命令,检索表结构并自动生成所对应的INSERT、UPDATE和DELETE命令。

               在DataAdapter对象查询命令必须至少返回一个主键或唯一列,若不存在任何主键和唯一列,则会生成命令失败,无法更新数据源。

        b、调用DataAdapter对象的Update()方法更新数据源。

          【语句】:SqlDataAdapter对象.Update(数据集对象,需要提交的数据表的名称);

  • 相关阅读:
    [PHP] php调用不存在的方法会自动调用 __call 魔术方法
    [PHP] laravel框架响应json信息中文禁止unicode编码
    [PHP] php中的trait代码复用方式
    [nginx] 解决:upstream timed out (110: Connection timed out) while reading response header from upstream
    [linux] Linux下格式化JSON程序-jq
    [git] Git Clean 清除 untrack 没有加入版本库的文件
    goland终端如何导入github上的包
    calico 配置 BGP Route Reflectors
    改善 Kubernetes 上的 JVM 预热问题
    golang开源对象存储
  • 原文地址:https://www.cnblogs.com/pengyouqiang88/p/5038476.html
Copyright © 2020-2023  润新知