列出可用的DB提供商

Mir*_*vec 4 .net connection-string

我在构建连接字符串时遇到了一些问题.我曾经生成"Provider = SQLOLEDB"或"Provider = SQLNCLI".现在我看到一些用户有SQLNCLI10而SQLNCLI丢失了.是否可以枚举可用的提供商,以便我可以选择一个有效的提供商?

System.Data.Common.DbProviderFactories.GetFactoryClasses()列出了.NET数据提供程序,但我仍然不知道哪些连接字符串参数有效.

Dan*_*haw 5

如果您正在使用System.Data.SqlClient.SqlConnection(直接或间接),则无需在连接字符串中指定Provider元素.我想如果提供这个值就会被忽略.

有关连接字符串中所有受支持元素的完整列表,请参阅文档SqlConnection.

但是,如果您正在使用OleDb,这可以满足您的需求:http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbenumerator.aspx

例如:

internal static class Program
{
    private static void Main(string[] args)
    {
        using (OleDbDataReader dataReader = OleDbEnumerator.GetRootEnumerator())
        {
            while (dataReader.Read())
            {
                Console.WriteLine("{0}, {1}", dataReader[0], dataReader[2]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)