Wessam A Halim Ответов: 2

C# как установить SQL database connection string runtime из текстового файла


дорогие все
у меня есть win форма приложения с помощью Entity Framework и создать строку подключения, то экспорт этой связи, чтобы c:/folder name/CN.txt как "Server =пещера; базы данных = IT_Manager; параметр trusted_connection = true; в" мне нужно читать подключения из текстового файла при загрузке форма входа если папку , файл и допустимое подключение существовать запустить приложение с этой связи еще подключение нагрузки Строковой форме, чтобы сохранить подключение

Что я уже пробовал:

//app config 
< connectionStrings>
     <add name="GYM_AdminEntities"  connectionString="metadata=res://*/Entities.Entities.csdl|res://*/Entities.Entities.ssdl|res://*/Entities.Entities.msl;provider=System.Data.SqlClient;provider connection 
     string="data source=CAVE;initial catalog=GYM_Admin;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework""
    providerName="System.Data.EntityClient" />
  </connectionStrings>
// class
public SetConnection()
        {
            config = 
               ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        }


        public string getconnectionstring(string key)
        {
            return config.ConnectionStrings.ConnectionStrings[key].ConnectionString;
        }


        public void saveconnection(string key , string value)
        {
            config.ConnectionStrings.ConnectionStrings[key].ConnectionString = value;
            config.ConnectionStrings.ConnectionStrings[key].ProviderName = 
            "System.Data.EntityClient";
            config.Save(ConfigurationSaveMode.Modified);
        }
//   code
       string txtcn = File.ReadAllText(@"C:\GYM Admin\CN.txt");
                    Controls.SetConnection conn = new Controls.SetConnection();
                    conn.saveconnection("GYM_AdminEntities", txtcn);

[no name]

Вы должны показать, что вы пробовали. Я не вижу в этом вопросе ничего, что указывало бы на то, что вы пытались решить эту проблему самостоятельно. Используйте string[] lines = File.ReadAllLines("путь к файлу"); для чтения файла. использование системы.Требуется ИО.
Пожалуйста, обновите свой вопрос, чтобы показать некоторые усилия.

Wessam A Halim

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

2 Ответов

Рейтинг:
11

Wessam A Halim

это лучшее решение для сохранения соединения в локальном конфигурационном файле
использование одного и того же класса (установить соединение )


          conn.Open();
      Controls.SetConnection con = new Controls.SetConnection();

con.saveconnection("Name",string.Format(@"metadata=res://*/Entities.Entities.csdl|res://*/Entities.Entities.ssdl|res://*/Entities.Entities.msl;provider=System.Data.SqlClient;provider connection string=""{0}; integrated security = True; MultipleActiveResultSets = True; App = EntityFramework""", ConnectionString));

      Application.Restart();


Рейтинг:
0

OriginalGriff

Это немного перебор для вашего приложения, но именно так я это и делаю: Хранилище экземпляров - простой способ обмена конфигурационными данными между приложениями[^]

Самый простой способ-просто добавить строку настроек в ваше приложение и загрузить ее из свойств.Настройки.По умолчанию.MyConnectionString: Использование настроек в C#[^]


Wessam A Halim

я попытался создать класс, чтобы получить и установить соединение из конфигурации приложения ((код обновлен ))
но все равно ничего не изменил в конфигурации приложения без ошибок