Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение настройки в app.config 
:(
    Опции темы
Afrodiziac
Дата 15.7.2008, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 13.5.2007

Репутация: нет
Всего: нет



Здравствуйте.

Не могли бы Вы помочь?

Есть отдельный проект инсталлирования Базы данных, в этот инсталлятор поступает значение строки соединений с БД.
С помощью этой строки я создаю новую БД, создаю таблицы и т.п.
После чего строку соединения изменяю, для соединения уже с новой БД.

После всех этих работ, мне нужно, эту строку соединения сохранить в app.config другого проекта, который будет коннектиться к новой БД.
Как это сделать?
Если из моего проекта инсталляции БД не доступно ConfigurationSettings и вообще класс System.Configuration.Configuration.

Код

public override void Install(System.Collections.IDictionary stateSaver)
    {
      string patternString = @"Data Source={0};Initial Catalog={1};Integrated Security=True";

      string radioBtn = Context.Parameters["constring"];
      string sqlType = string.Empty;
      if (radioBtn.Equals("1"))
        sqlType = @".\sqlexpress";
      else
        sqlType = @"AFRO";

      ConnectionString = string.Format(patternString, sqlType, "master");
      ConnectionString = CheckConnectionString(ConnectionString);
      
      if (!AddDBTable())
        throw new Exception(@"Не удалось создать базу данных." + Environment.NewLine +
                              "Возможные причины:" + Environment.NewLine +
                              "- Не установлен SQL сервер" + Environment.NewLine +
                              "- Не правильно выбран тип сервера" + Environment.NewLine +
                              "- SQL сервер не запущен" + Environment.NewLine +
                              "- Отсутствуют системные таблицы" + Environment.NewLine +
                              "- Нет прав доступа к SQL серверу");

      //Пытаемся записать в конфиг строку соединения
      string assemblyPath = Context.Parameters["assemblypath"];
      int end = assemblyPath.Length - 1;
      for (int i = assemblyPath.Length - 1; i >= 0; i--)
      {
        if (assemblyPath[i] == '\\')
        {
          end = i;
          break;
        }
      }
      string path = assemblyPath.Substring(0, end);
      string NotificationDBConnectionString = string.Format(patternString, sqlType, DBName);
      
      //Тут сохранение строки соединения
      //FileStream stream = File.Open(path + @"\NotificationServer.exe.config", FileMode.Open);
      //XmlWriterSettings settings = new XmlWriterSettings();
      //settings.ConformanceLevel = ConformanceLevel.Auto;
      //XmlWriter writer = XmlWriter.Create(stream, settings);
      //writer.WriteAttributeString("configuration", "appSettings", "NServerDB", "!!! Привет !!!");
      //writer.Close();

      base.Install(stateSaver);
    }


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

PM MAIL   Вверх
Pankon
Дата 15.7.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Сделай в проекте ссылку на Assembly "System.Configuration" и используй "System.Configuration.ConfigurationManager.ConnectionStrings".
PM MAIL   Вверх
Afrodiziac
Дата 16.7.2008, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 13.5.2007

Репутация: нет
Всего: нет



Спасибо, Pankon помогло  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0797 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.