数据提供程序用于连接到数据库,执行命令并检索数据记录。它是一个性能更好的轻量级组件。 它还允许将数据放入DataSet
中以在应用程序中进一步使用。
.NET Framework提供了可以在应用程序中使用的下列数据提供者。
编号 | .NET Framework数据提供者 | 描述 |
---|---|---|
1 | 用于SQL Server的.NET Framework 数据提供程序 |
它为Microsoft SQL Server提供数据访问。它需要System.Data.SqlClient 命名空间。 |
2 | 用于OLE DB的.NET Framework数据提供程序 | 它用于连接OLE DB 。它需要System.Data.OleDb 命名空间。 |
3 | 用于Oracle的.NET Framework数据提供程序 | 它用于Oracle数据源。它使用System.Data.OracleClient 命名空间。 |
4 | EntityClient 提供程序 |
它为实体数据模型应用程序提供数据访问。它需要System.Data.EntityClient 命名空间。 |
5 | 用于SQL Server Compact 4.0的.NET Framework数据提供程序。 | 它为Microsoft SQL Server Compact 4.0提供数据访问。它需要System.Data.SqlServerCe 命名空间。 |
以下是数据提供者的核心对象。
编号 | 对象 | 描述 |
---|---|---|
1 | Connection |
它用于建立到特定数据源的连接。 |
2 | Command |
它用于执行查询来执行数据库操作。 |
3 | DataReader |
它用于从数据源读取数据。DbDataReader 是所有DataReader 对象的基类。 |
4 | DataAdapter |
它填充一个DataSet ,并解析数据源的更新。所有DataAdapter 对象的基类都是DbDataAdapter 类。 |
SQL Server的数据提供者是一个轻量级组件。它提供了更好的性能,因为它直接访问SQL Server而没有任何中间连接层。在早期版本中,它在连接到创建性能问题的SQL Server之前与ODBC层进行交互。
SQL Server类的.NET Framework数据提供程序位于System.Data.SqlClient
命名空间中。我们可以使用下面的语法在C#
应用程序中包含这个名称空间。
using System.Data.SqlClient;
这个命名空间包含以下重要的类。
编号 | 类 | 描述 |
---|---|---|
1 | SqlConnection |
它用于创建与SQL Server的连接。这个类不能被继承。 |
2 | SqlCommand |
它用于执行数据库查询。这个类不能被继承。 |
3 | SqlDataAdapter |
它表示一组用于填充DataSet 的数据命令和数据库连接。这个类不能被继承。 |
4 | SqlDataReader |
它用于从SQL Server数据库中读取行。这个类不能被继承。 |
5 | SqlException |
这个类用来抛出SQL异常,发生错误时会引发异常。这个类不能被继承。 |
它用于通过Oracle客户端连接Oracle数据库。数据提供程序支持Oracle客户端软件版本8.1.7或更高版本。该数据提供程序支持本地和分布式事务。
Oracle数据提供程序类位于System.Data.OracleClient
命名空间中。我们必须使用System.Data.OracleClient
和System.data
在应用程序中与Oracle数据库连接。参考以下示例代码 -
using System.Data; using System.Data.OracleClient;
数据提供程序的选择取决于应用程序的设计和数据源。选择最佳的.NET Framework数据提供程序可以提高应用程序的性能,功能和完整性。下表显示了数据提供程序的优缺点。
编号 | 数据提供程序 | 注意事项 |
---|---|---|
1 | 用于SQL Server的.NET Framework数据提供程序 | 这对于使用Microsoft SQL Server的中间层应用程序,单层应用程序来说是不错的选择。 |
2 | 用于OLE DB的.NET Framework数据提供程序 | 对于使用Microsoft Access数据库的单层应用程序来说是很好的选择。 |
3 | 用于ODBC的.NET Framework数据提供程序 | 对于使用ODBC数据源的中间层和单层应用程序来说,这是不错的选择。 |
4 | 用于Oracle的.NET Framework数据提供程序 | 对于使用Oracle数据源的中间层和单层应用程序来说,这是有好处的。 |