【问题标题】:List available DB providers列出可用的数据库提供程序
【发布时间】:2010-08-31 12:31:44
【问题描述】:

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

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

【问题讨论】:

    标签: .net connection-string


    【解决方案1】:

    如果您正在使用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]);
                }
            }
        }
    }
    

    【讨论】:

    • 谢谢,这个 OleDbEnumerator 正是我想要的。
    【解决方案2】:

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

    【讨论】:

    • 这不是这个问题的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-10
    相关资源
    最近更新 更多