OleDbConnection
打开从属性的返回值创建的对象时,我们遇到了意外的异常OleDbConnectionStringBuilder.ConnectionString
。正在使用 将OleDbConnectionStringBuilder
任何相对DataSource
路径更新为绝对路径。
System.Data.OleDb.OleDbException
当我们调用OleDbConnection.Open
并且消息指出:
“初始化字符串的格式不符合 OLE DB 规范”时,我们得到一个异常。.
代码是:
var oleDBbuilder = new OleDbConnectionStringBuilder(connectString);
oleDBbuilder.DataSource = ResolveDataSourcePath(oleDBbuilder.DataSource);
m_pOleDb = new OleDbConnection(oleDBbuilder.ConnectionString);
m_pOleDb.Open(); // <-- Throws exception here
在我们尝试处理包含 value 的连接字符串之前,我们对此没有任何问题Mode=ReadWrite|Share Deny None;
。OleDbConnectionStringBuilder.ConnectionString
属性返回的值返回带有引用值的属性。例如:
此连接字符串(变量“connectString”):
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\SomePath\@Some Database.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False
变为(OleDbConnectionStringBuilder.ConnectionString):
Provider=Microsoft.Jet.OLEDB.4.0;Data Source="c:\SomePath\Some Database.mdb";Persist Security Info=False;Mode="ReadWrite|Share Deny None"
Mode
没有引号的值可以正常工作!
我有一些问题:
- 这是设计使然吗?为什么它返回一个不兼容的值?
- 我怎样才能在不重复工作的情况下解决这个问题
OleDbConnectionStringBuilder
?