我有:
Dim con As New OleDbConnection(My.Resources.ConnectionString)
// Give exception = Format of the initialization string does not conform to specification starting at index 62.
当我替换资源的实际值时,它没有例外:
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\rawData.xlsx;Extended Properties=""Excel 12.0 XML;""")
参考资料中的ConnectionString的值:
<data name="ConnectionString" xml:space="preserve">
<value>Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\rawData.xlsx;Extended Properties=""Excel 12.0 XML;""</value>
</data>
我不明白为什么会这样?
我认为这应该在编译过程之前就已经被替换了。
那为什么会给出例外?
答案 0 :(得分:3)
在配置文件中,扩展属性值周围有双引号。尝试删除它们,这样你就只有一个。
它使用文字的原因是,在VB .NET中,双引号会转义引号字符,因此可以在字符串中使用它而不终止字符串。这不适用于XML。
答案 1 :(得分:1)
您不需要XML配置文件中的双引号。替换它时它可以正常工作,因为""
被正确地转义为单个"
,因为它是一个字符串文字。