【发布时间】:2019-01-12 21:42:03
【问题描述】:
我正在尝试使我的应用程序数据库不可知,因此我选择使用 DBConnection 类而不是当前乱扔我的应用程序的 SqlConnection、OracleConnection 等。所以我遇到了 DBConnectionStringBulder 在我的连接字符串中添加双引号的问题。当我使用 OdbcConnectionStringBuilder 时,省略了额外的双引号。所以现在我需要在构建连接字符串后替换双引号以避免任何问题。
OdbcConnectionStringBulder 连接字符串:
Driver={Microsoft 文本驱动程序 (*.txt; *.csv)};Dbq=C:\Temp\;Extensions=asc,csv,tab,txt;Persist Security Info=False
DbConnectionStringBulder 连接字符串:
Driver="{Microsoft 文本驱动程序 (*.txt; *.csv)}";Dbq=C:\Temp\;Extensions=asc,csv,tab,txt;Persist Security Info=False
所以我猜测这是 DbConnectionStringBuilder 中的一个错误,但我想看看我是否做错了什么。这是我的解决方法的适用代码:
OdbcConnectionStringBuilder odbcConnectionString = new OdbcConnectionStringBuilder();
odbcConnectionString.Add("Driver", "{Microsoft Text Driver (*.txt; *.csv)}");
odbcConnectionString.Add("Dbq", @"C:\Temp\");
odbcConnectionString.Add("Extensions", "asc,csv,tab,txt");
odbcConnectionString.Add("Persist Security Info", "False");
Console.WriteLine(odbcConnectionString.ConnectionString);
DbConnectionStringBuilder dbConnectionString = new DbConnectionStringBuilder();
dbConnectionString.Add("Driver", "{Microsoft Text Driver (*.txt; *.csv)}");
dbConnectionString.Add("Dbq", @"C:\Temp\");
dbConnectionString.Add("Extensions", "asc,csv,tab,txt");
dbConnectionString.Add("Persist Security Info", "False");
Console.WriteLine(dbConnectionString.ConnectionString.Replace("\"", string.Empty)); //<-- My Workaround.
这是 .Net Fiddle 的链接:https://dotnetfiddle.net/3qhB5S
【问题讨论】:
标签: c# visual-studio-2017 database-connection dbconnection