Пожалуйста, помогите со строкой подключения SQL XML в WPF

#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. Самая первая строка кода операции делает именно это.