Исключение с аргументом String, почему это происходит? - PullRequest
0 голосов
/ 28 июля 2011

у меня есть:

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 ]

3 голосов
/ 28 июля 2011

В файле конфигурации у вас есть двойные кавычки вокруг значений расширенных свойств.Попробуйте удалить их, чтобы у вас был только один.

Причина, по которой он работает с литералом, заключается в том, что в VB .NET двойная кавычка экранирует символ кавычки, поэтому его можно использовать в строке беззавершая строку.Это не относится к XML.

1 голос
/ 28 июля 2011

Вам не нужны двойные кавычки в файле конфигурации XML.Он отлично работает, когда вы подставляете его, потому что "" правильно экранируется в один ", поскольку является строковым литералом.

...