列出可用的DB提供商

时间:2010-08-31 12:31:45

标签: .net connection-string

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

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

2 个答案:

答案 0 :(得分:5)

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

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

但是,如果你正在使用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]);
            }
        }
    }
}

答案 1 :(得分:-1)

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