Изменить Data Source в settings через OpenFileDialog

Добрый день, возможно где то здесь решение нужное есть, но я перепробовал по всякому, облазил весь форум, MSDN и google, но пока пришел только к такому варианту
           var connection = new OleDbConnection();
            var open = new OpenFileDialog();
 
            if (open.ShowDialog() == DialogResult.Cancel) return;
            // Строка подключения
            connection.ConnectionString = String.Format(
                "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", open.FileName);
            string ggg = Properties.Settings.Default.dataBase;
            Properties.Settings settings = Properties.Settings.Default;
            settings["SCRConnectionString"] = open.FileName;
            settings.Save();
            try
            {
                connection.Open();
                MessageBox.Show("Соединение установленно", Text);
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
но этот вариант не работает выдает следующее после выбора базы и записи пути при повторном открытии формы где должны отобразиться данные из базы вылазит вот что
                   this.InitConnection();
Формат строки инициализации не соответствует спецификации, начиная с индекса 0. Заранее спасибо всем кто откликнется!Будьте добры, помогите!
11 ответов

Посмотри про строки инициализации тут: Connection strings for SQL Server Compact Edition


Посмотри про строки инициализации тут: Connection strings for SQL Server Compact Edition
Это не совсем то что нужно, там описывается подключение, а у меня подключение работает, мне необходимо чтобы юзер мог изменять файл базы данных в приложении через openfiledialog, второй день не могу решить данную проблему!


мне необходимо чтобы юзер мог изменять файл базы данных в приложении через openfiledialog
Это как? Объясни подробнее, что тебе нужно.


Это как? Объясни подробнее, что тебе нужно.
Ну это так: Есть программа и база данных, но база данных может находиться не только в каталоге с программой, мне необходимо чтобы пользователь имел возможность в настройках программы указать путь для базы данных, тоесть изменить строку подключения при помощи openfiledialog Properties.Settings. Default.dataBase сохранить в settings.settings
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Properties.Settings.Default.dataBase";
Язык начал только недавно изучать, поэтому если можно то подробней! Прогу пишу для себя и очень уж надо справиться с этим. Спасибо!


Есть программа и база данных, но база данных может находиться не только в каталоге с программой
Тут следует уточнить, какая БД (SQL, Access...)
необходимо чтобы пользователь имел возможность в настройках программы указать путь для базы данных
где находится строка подключения? Если в config-файле, то он имеет xml-структуру и изменять его нужно соответствующим образом. Или просто иметь его шаблон, при изменении строки подключения, файл config просто перезаписывать.


Тут следует уточнить, какая БД (SQL, Access...)где находится строка подключения? Если в config-файле, то он имеет xml-структуру и изменять его нужно соответствующим образом. Или просто иметь его шаблон, при изменении строки подключения, файл config просто перезаписывать.
База access, строка подключения находится в settings и выглядит следующим образом:Properties.Settings. Default.dataBase тип(Строка подключения) область(приложение) значение Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\base.mdb


строка подключения находится в settings
он также построен на xml. Перезаписывай файл полностью с новым параметром.


он также построен на xml. Перезаписывай файл полностью с новым параметром.
А не подкинете примерчик? Спасибо!


static public void SaveSet()
        {
            try
            {
                using (StreamWriter sw = new StreamWriter("settingsFile.config"))
                {
                    sw.Write(/*сюда вставляешь все содержимое файла*/);
                    sw.Close();
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message);
            }
        }


sw.Write(/*сюда вставляешь все содержимое файла*/);
а как это реализовать???никак не доходит...


sw.Write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n    <configSections>\n    </configSections>\n    <connectionStrings>\n        <add name=\"SoftwareCatalog.Properties.Settings.software_catalogConnectionString\"\n            connectionString=\""СТРОКА ПОДКЛЮЧЕНИЯ"\"\n            providerName=\"System.Data.SqlClient\" />    </connectionStrings></configuration>\"");