使用String参数的异常,为什么会发生这种情况?

时间:2011-07-28 10:34:02

标签: .net vb.net exception resources connection-string

我有:

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>

我不明白为什么会这样?

我认为这应该在编译过程之前就已经被替换了。

那为什么会给出例外?

2 个答案:

答案 0 :(得分:3)

在配置文件中,扩展属性值周围有双引号。尝试删除它们,这样你就只有一个。

它使用文字的原因是,在VB .NET中,双引号会转义引号字符,因此可以在字符串中使用它而不终止字符串。这不适用于XML。

答案 1 :(得分:1)

您不需要XML配置文件中的双引号。替换它时它可以正常工作,因为""被正确地转义为单个",因为它是一个字符串文字。