我在构建连接字符串时遇到一些问题。我曾经生成“Provider = SQLOLEDB”或“Provider = SQLNCLI”。现在我看到一些用户有SQLNCLI10而SQLNCLI丢失了。是否可以枚举可用的提供商,以便我可以选择一个有效的提供商?
System.Data.Common.DbProviderFactories.GetFactoryClasses()列出了.NET数据提供程序,但我仍然不知道哪些连接字符串参数有效。
答案 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。