#c# #xml #connection-string
Вопрос:
Я пытаюсь подключиться к XML-файлу базы данных под названием «Подключение», хранящемуся в каталоге приложений. Он подключается правильно, когда я жестко кодирую его так
const string FILENAME = @"C:UsersWelmanDesktopWpfApp2Connection.xml";
Я не хочу жестко кодировать его, потому что я хочу, чтобы он всегда был доступен, несмотря ни на что.Поэтому я использую домен приложения вот так:
string FILENAME = File.ReadAllText(System.AppDomain.CurrentDomain.BaseDirectory @"Connection.xml", Encoding.UTF8);
XDocument xdoc = XDocument.Load(FILENAME);
string conn = xdoc.Descendants("connectionStrings").FirstOrDefault().Value;
SqlConnection sqlCon = new SqlConnection(conn);
Это не работает, и мое приложение дает мне:
необработанное исключение
Возможно, я должен использовать XDocument.Разобрать? Хотя я незнаком.
Комментарии:
1. Покажите нам свой XML
2. Если он работает , когда вы жестко кодируете путь, а не при использовании
System.AppDomain.CurrentDomain.BaseDirectory
, то вам следует поставить точку останова в строке сSystem.AppDomain.CurrentDomain.BaseDirectory
и убедиться, что каталог, на который он указывает, на самом деле находится там, где у вас естьConnection.xml
файл. Кроме того, если вы опубликуете фактическое сообщение об ошибке, вы можете получить дополнительную помощь.
Ответ №1:
Просто измените этот фрагмент кода вот так.
- Это позволит вам проверить правильность полного пути.
- Нет никакой необходимости звонить
File.ReadAllText()
в полицию вообще.
c#
string FILENAME = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Connection.xml");
XDocument xdoc = XDocument.Load(FILENAME);
string conn = xdoc.Descendants("connectionStrings").FirstOrDefault().Value;
SqlConnection sqlCon = new SqlConnection(conn);
Комментарии:
1. Самая первая строка кода операции делает именно это.