数据提供者枚举
使用DbProviderFactories类可以查询安装于本地机器的.NET数据提供者。静态方法GetFactoryClasses()会通过DataTable类型返回实现了DbProviderFactory基类的所有继承类的信息。
表1- GetFactoryClasses()方法返回结果的DataTable表定义
列名 | 说明 |
Name | 数据提供者名称 |
Description | 数据提供者说明 |
InvariantName | 在machine.config文件的中的中注册的数据提供者元素唯一标识符。例如,SQL Server数据提供者的唯一标识为”System.Data.SqlClient”。此标识用来编程引用数据提供者。 |
AssemblyQualifiedNAme | 数据提供者的完整名,实例化对象的所有信息(反射)。 |
以下代码用来实现对本地支持的数据提供者的枚举:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> using System;
using System.Data;
using System.Data.Common;
class Program
{
static void Main( string [] args)
{
DataTable dt = DbProviderFactories.GetFactoryClasses();
foreach (DataRow row in dt.Rows)
{
Console.WriteLine( " {0}\n\r {1}\n\r {2}\n\r {3}\n\r " ,
row[ " Name " ], row[ " Description " ], row[ " InvariantName " ],
row[ " AssemblyQualifiedName " ]);
}
Console.WriteLine( " Press any key to continue. " );
Console.ReadKey();
}
}
通过以上代码结果获得的所有关于数据提供者的信息都记录在本地machine.config中,代码如下:
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--> < system.data >
< DbProviderFactories >
< add name ="Odbc Data Provider" invariant ="System.Data.Odbc"
description =".Net Framework Data Provider for Odbc"
type ="System.Data.Odbc.OdbcFactory,
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
< add name ="OleDb Data Provider" invariant ="System.Data.OleDb"
description =".Net Framework Data Provider for OleDb"
type ="System.Data.OleDb.OleDbFactory,
System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
< add name ="OracleClient Data Provider" invariant ="System.Data.OracleClient"
description =".Net Framework Data Provider for Oracle"
type ="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
< add name ="SqlClient Data Provider" invariant ="System.Data.SqlClient"
description =".Net Framework Data Provider for SqlServer"
type ="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" />
< add name ="Microsoft SQL Server Compact Data Provider"
invariant ="System.Data.SqlServerCe.3.5"
description =".NET Framework Data Provider for Microsoft SQL Server Compact"
type ="System.Data.SqlServerCe.SqlCeProviderFactory,
System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91" />
DbProviderFactories >
system.data >
我们可以通过数据库提供者枚举动态地添加各种不同类型数据库连接并进行数据库操作,或者通过配置文件指定不同的数据库连接无代码实现多种数据库的连接和访问。这对于数据库客户端应用程序和有多种数据源的Web和Windows Form应用程序都简化了繁杂的编码工作。稍后会讨论通过配置实现多种数据库连接的方法。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-571189/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12639172/viewspace-571189/