Universal Data Link - Файл не может быть открыт. Убедитесь, что это действительный файл Data Link

c# connection-string

937 просмотра

1 ответ

Я пытаюсь создать файл UDL программно в C #. В моей программе я хочу показать пользователю окно свойств Data Link, но с моими собственными значениями по умолчанию для строки подключения. Я изначально думал сделать следующее:

string[] lines = new string[]
{
    "[oledb]",
    "; Everything after this line is an OLE DB initstring",
    "Provider=SQLOLEDB.1;Persist Security Info=False"
};

File.WriteAllLines("Test.udl", lines);
Process p = Process.Start("Test.udl");
p.WaitForExit();

Тем не менее, я получаю эту ошибку при попытке открыть файл:

Файл не может быть открыт. Убедитесь, что это действительный файл Data Link.

Это странно, потому что я создал пустой файл, назвал его something.udl, открыл его, нажал OK, а затем открыл содержимое файла, который был:

[oledb]
; Everything after this line is an OLE DB initstring
Provider=SQLOLEDB.1;Persist Security Info=False

Но в конце строки подключения был символ новой строки. Я использовал KDiff, чтобы сравнить этот файл и файл, который я создал в моей программе, и он сказал: «Файлы - это одинаковый текст, но они не равны двоично» или что-то в этом роде.

Я считаю, что это связано с тем, как File.WriteAllLinesметод записывает строки. Поэтому я попытался использовать разные методы кодирования, но безуспешно. Любые идеи о том, где я иду не так?

Я использую эту ссылку MSDN как ссылку на файлы UDL. Интересно также отметить, что если я открою новый текстовый файл и вставлю все строки в моем linesмассиве, я получу ту же ошибку.

Автор: xadeka Источник Размещён: 29.10.2019 11:43

Ответы (1)


1 плюс

Решение

Все, что вам нужно сделать, это использовать кодировку Unicode:

File.WriteAllLines("Test.udl", lines, Encoding.Unicode);
Автор: stuartd Размещён: 06.04.2016 01:31
Вопросы из категории :
32x32