.net 列出可用的数据库提供程序

.net 列出可用的数据库提供程序,.net,connection-string,.net,Connection String,我在构建连接字符串时遇到一些问题。我曾经生成“Provider=SQLOLEDB”或“Provider=SQLNCLI”。现在我看到一些用户拥有SQLNCLI10,而SQLNCLI缺失。是否可以枚举可用的提供者,以便我可以选择一个有效的提供者 System.Data.Common.DbProviderFactorys.GetFactoryClasses()列出了.NET数据提供程序,但我仍然不知道哪些连接字符串参数有效。如果使用的是System.Data.SqlClient.SqlConnect

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


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

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

有关
SqlConnection
连接字符串中所有受支持元素的综合列表,请参阅

但是,如果您使用的是OleDb,这会满足您的需要:

例如:

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]);
            }
        }
    }
}

有关连接字符串的更多详细信息,请参阅。

Thaks,这个OleDbEnumerator正是我想要的。这不是这个问题的答案