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(数据集对象,需要提交的数据表的名称);

posted on 2015-12-11 11:32  海绵全是洞  阅读(1456)  评论(0编辑  收藏  举报