码迷,mamicode.com
首页 > Web开发 > 详细

ADO.NET

时间:2015-07-07 21:14:08      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

  ADO.NET用于访问和操作数据的两个主要组件是.NET Framework数据提供程序和DataSet.

  • .NET Framework数据提供程序:

 .NET Framework数据提供程序是专门为数据操作以及快速、只进、只读访问数据而设计的组件。主要包括Connection、Command、DataReader、DataAdapter四个对象。

  • DataSet

 Dataset是专门为独立于任何数据源的数据访问而设计的。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及有关DataTable对象中数据的主键、外键、约束和关系信息组成。

  • ADO.NET的结构及组成

技术分享

 

  • ADO.NET数据提供程序

1、SQLServer .NET Framework数据提供程序------------System.Data.SqlClient;

2、OLE DB.NET Framework数据提供程序------------System.Data.OleDb;

3、ODBC.NET Framework数据提供程序------------System.Data.Odbc;

4、Oracle.NET Framework数据提供程序------------System.Data.OracleClient;

  •  Connection对象
1、Connection对象提供与数据源的连接。要存取数据源内的数据,首先要建立程序和数据源之间的连接。
2、属性

(1)ConnectionString:获取或设置用于打开数据库的字符串,包括字符串的内容和数据提供器名称。

(2)State:获取连接的当前状态

3、方法

(1)Open()方法:用于打开由ConnectionString属性指定的数据源连接

(2)Close()方法:关闭数据源连接

Imports System

Imports System.Data

Imports System.Data.SqlClient

…

Dim sqlconn=new sqlconnnection

Sqlconn.connectionString As String = _ "Data Source=(local);Initial Catalog=Northwind;" _ & "Integrated Security=true"

Sqlconn.open()

  

  • Command对象
  使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 

   1.用构造函数创建SqlCommand对象,并通过该对象的构造函数参数来设置特定属性值,其语法格式如下:

   SqlCommand 命令对象名 = new SqlCommand(查询字符串, 连接对象名); 

    SqlCommand com = new SqlCommand(string ,conn);

 2、使用 Command 对象可以访问用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。 
   3、Command对象的属性
   
Using connection As New SqlConnection(connectionString)
 Dim command As SqlCommand = New SqlCommand()
command.Connection = connection
command.CommandText = "SalesByCategory"
command.CommandType = CommandType.StoredProcedure

 4、方法:

 ExecuteNonQuery:执行不返回任何行的命令。典型的例子是实现插入、更新和删除。
 ExecuteReader:通过Connection对象下达命令至数据源,将数据作为一个 DataReader 对象返回。用于任何返回数据的 SQL 查询;
 ExecuteScalar:从数据库中返回单独值,例如与特定查询相匹配的记录数,或者数据库功能调用的结果。

 

  • DataReader 对象
1、当Command 对象返回结果集时,需要使用DataReader对象来检索数据。DataReader 对象返回一个来自Command 的只读的、只能向前的数据流。DataReader每次只能在内存中保留一行,所以开销非常小。
2、在与数据库的交互中,要获得数据访问的结果可用两种方法来实现,第一种是通过DataReader对象从数据源中获取数据并进行处理;第二种是通过DataSet对象将数据放置在内存中进行处理。
Using connection
        Dim command As SqlCommand = New SqlCommand( _
          "SELECT CategoryID, CategoryName FROM Categories;", _
          connection)
        connection.Open()

        Dim reader As SqlDataReader = command.ExecuteReader()

        If reader.HasRows Then
            Do While reader.Read()
                Console.WriteLine(reader.GetInt32(0) _
                  & vbTab & reader.GetString(1))
            Loop
        Else
            Console.WriteLine("No rows found.")
        End If

        reader.Close()
    End Using

  

  • DataAdapter对象
 DataAdapter对象是一个双向通道,用来把数据从数据源中读到一个内存表中,以及把内存中的数据写回到一个数据源中。这两种操作分别称作填充(Fill)和更新(Update)。DataAdapter对象通过Fill方法和Update方法来提供这一桥接器。
 1.创建数据库连接对象Connection;
 2.创建Select查询语句或Command对象;
 3.创建DataAdapter对象;
 4.创建DataSet对象;
 5.为DataAdapter对象自动生成更新命令;
 6.调用DataAdapter对象的Fill()方法填充DataSet对象;
 7.对DataTable中的特定记录进行增加、删除、修改
 8. 调用DataAdapter对象的Update()方法,将DataTable中的数据变化提交到数据库。
 说明:当调用Update方法时,DataAdapter将分析已做出的更改并执行相应的命令(Insert,Update,Delete)。

 

  • DataSet
1、DataSet相当于内存中的数据库,在命名空间System.Data中定义;DataAdapter相当于DataSet和物理数据源之间的桥梁。
2、在DataSet内部是一个或多个DataTable的集合,
3、DataSet.Tables[“表名”]可获取数据集中的一个表。
4、在DataTable 中执行的插入、更新和删除操作并不会自动写回数据库。如果想把更改写回数据库,则需要手动去完成,这个操作由DataAdapter.Update完成。  
 
DataSet是实现ADO.NET断开式连接的核心,它通过DataAdapter从数据源获得数据后就断开了与数据源之间的连接(这一点与前面介绍过的DataReader对象完全不同),此后应用程序所有对数据源的操作(定义约束和关系、添加、删除、修改、查询、排序、统计等等)均转向到DataSet,当所有这些操作完成后可以通过DataAdapter提供的数据源更新方法将修改后的数据写入数据库。

  DataSet的组成

技术分享

    

 所谓“填充”是指使用DataAdapter对象通过执行SQL语句从数据源得到的返回结果,使用DataAdapter对象的Fill方法传递给DataSet对象。
 其常用语法格式如下所示:

Adapter.Fill(ds);

或:

Adapter.Fill(ds, tablename); 

 通过DataSet向数据表添加新记录的一般方法如下:
 1) 建立与数据库的连接。
 2) 通过DataAdapter对象从数据库中取出需要的数据。
 3) 实例化一个SqlCommandBuilder类对象,并为DataAdapter自动生成更新命令。
 4) 使用DataAdapter对象的Fill方法填充DataSet。
 5) 使用NewRow()方法向DataSet中填充的表对象中添加一个新行。
 6) 为新行中各字段赋值
 7) 将新行添加到DataSet中填充的表对象中。
 8) 调用DataAdapter对象的Update()方法将数据保存到数据库。

使用DataSet从填充的表对象中删除行时需要创建一个DataRow对象,并将要删除的行赋值给该对象,而后调用DataRow对象的Delete()方法将该行删除。当然此时的删除仅是针对DataSet对象的,若需从数据库中删除该行,还需要调用DataAdapter对象的Update()方法将删除操作提交到数据库。

 实际就是在DataSet 数据行上面直接修改数据。创建一个DataRow对象,从表对象中获得需要修改的行并赋给新建的DataRow对象,根据需要修改各列的值(为各字段赋以新值)。最后仍需要调用DataAdapter对象的Update()方法将更新提交到数据库。

 

ADO.NET

标签:

原文地址:http://www.cnblogs.com/qi123/p/4628440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!