none
Конфигуратор сервера RRS feed

  • Вопрос

  • Есть приложение, общающееся с MS SQL Server 2005 посредством ADO Data Entities. Соответственно модель была создана визардом.
    Проблема следующая - приложение четко завязано на определенный сервер. Соответственно если имя сервера меняется - соединения нет.
    Ясное дело, нужно сделать конфигуратор сервера, т.е. какое-то окошко настройки, где указываются параметры соединения.
    Однако, насколько я понял, эти параметры зашиты в App.Config.
    Соответственно вопрос - как мне "на лету" можно менять параметры?
    • Перемещено Siddharth Chavan 1 октября 2010 г. 21:11 MSDN Forums Consolidation (От:Технологии .NET Framework: ADO.NET, WCF, WPF etc)
    19 апреля 2010 г. 15:15

Ответы

  • Добавить Reference на  System.configuration

     

     Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
     ConnectionStringsSection section = (ConnectionStringsSection)config.GetSection("connectionStrings");
     section.ConnectionStrings["NorthwindEntities"].ConnectionString = "connection string";
     config.Save(ConfigurationSaveMode.Modified);
     ConfigurationManager.RefreshSection("connectionStrings");

     

    В самом проекте app.config  не изменится, но в папке с дебагом да, как в последствии и в релизной версии

     

    • Помечено в качестве ответа I.Vorontsov 21 апреля 2010 г. 6:59
    19 апреля 2010 г. 16:39
  • Попробуйте

    .ConnectionString = @"connection string"
    

    И замените все " на ""

    не забудьте сделать ребилд

    • Помечено в качестве ответа Burmaglotik 22 апреля 2010 г. 10:06
    22 апреля 2010 г. 8:21

Все ответы

  • Добавить Reference на  System.configuration

     

     Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
     ConnectionStringsSection section = (ConnectionStringsSection)config.GetSection("connectionStrings");
     section.ConnectionStrings["NorthwindEntities"].ConnectionString = "connection string";
     config.Save(ConfigurationSaveMode.Modified);
     ConfigurationManager.RefreshSection("connectionStrings");

     

    В самом проекте app.config  не изменится, но в папке с дебагом да, как в последствии и в релизной версии

     

    • Помечено в качестве ответа I.Vorontsov 21 апреля 2010 г. 6:59
    19 апреля 2010 г. 16:39
  • В качестве проверки попробовал вместо "connection string" записать соответствующий раздел из app.config, т.е. в моем случае "metadata=res://*/MaintenanceModel.csdl|res://*/MaintenanceModel.ssdl|res://*/MaintenanceModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=WINXP-SQL;Initial Catalog=Maintenance;Integrated Security=True;MultipleActiveResultSets=True""

    Появилась ошибка, что ключевое слово data source не поддрживается в моем MaintenanceEntities

    Что я делаю не так?

    22 апреля 2010 г. 8:06
  • Попробуйте

    .ConnectionString = @"connection string"
    

    И замените все " на ""

    не забудьте сделать ребилд

    • Помечено в качестве ответа Burmaglotik 22 апреля 2010 г. 10:06
    22 апреля 2010 г. 8:21
  • Большое спасибо! Теперь все работает!

    22 апреля 2010 г. 10:06