none
Как изменить строку подключения fioConnectionString? C#

    Вопрос

  • Нужно чтоб в textbox1 через OpenDialog1 можно было изменить путь к базе данных. 

    Изменяя при этом данную переменную (строку подключения)


    Метод перевода в string приводит к тому что, создания sql запросов становиться не возможным.

    Такой код использовал для замены переменной когда она была string

                                                                                                    

                OpenFileDialog openFileDialog1 = new OpenFileDialog();

                openFileDialog1.InitialDirectory = "c:\\";
                openFileDialog1.Filter = "mdb files (*.mdb)|*.mdb|All files (*.*)|*.*";
                openFileDialog1.FilterIndex = 2;
                openFileDialog1.RestoreDirectory = true;

                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    string filebrous = openFileDialog1.FileName;
                    textBox1.Text = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filebrous
                    Properties.Settings.Default.fioConnectionString = textBox1.Text;
                    Properties.Settings.Default.Save(); 


                    this.Close();
                }


    30 марта 2017 г. 12:46

Ответы

  • Во первых, использовать класс OleDbConnectionStringBuilder

    OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder();
    builder.ConnectionString = Properties.Settings.Default.fioConnectionString;
    builder["Data Source"] = filebrous;
    
    Properties.Settings.Default.fioConnectionString = builder.ConnectionString
    Во вторых, параметр в настройках должен иметь область Пользователь, а не Приложение, иначе не работает.


    30 марта 2017 г. 16:19
  • Ну раз так, значит это свойство ConnectionString надо оставить, чтобы студия успокоилась. Просто создайте рядом другое string-свойство  fioConnectionStringReal (с областью видимости "Пользователь"), и его модифицируйте. А когда нужно исполнять запросы, перед вызовом TableAdapter.Fill или Update установите свойство Connection

    this.myTableAdapter.Connection = new OleDbConnection(Properties.Settings.Default.fioConnectionStringReal);
    this.myTableAdapter.Fill(this.databaseDataSet.myTable);

    • Помечено в качестве ответа Никитка 21 апреля 2017 г. 7:57
    20 апреля 2017 г. 17:15

Все ответы

  • Во первых, использовать класс OleDbConnectionStringBuilder

    OleDbConnectionStringBuilder builder = new OleDbConnectionStringBuilder();
    builder.ConnectionString = Properties.Settings.Default.fioConnectionString;
    builder["Data Source"] = filebrous;
    
    Properties.Settings.Default.fioConnectionString = builder.ConnectionString
    Во вторых, параметр в настройках должен иметь область Пользователь, а не Приложение, иначе не работает.


    30 марта 2017 г. 16:19
  • А тип данных должен быть string? 
    5 апреля 2017 г. 7:20
  • А тип данных должен быть string? 
    Да
    5 апреля 2017 г. 7:35
  • А тип данных должен быть string? 

    Да

    после этого выдается ошибка здесь и не получается создавать запросы.

    20 апреля 2017 г. 8:55
  • Ну раз так, значит это свойство ConnectionString надо оставить, чтобы студия успокоилась. Просто создайте рядом другое string-свойство  fioConnectionStringReal (с областью видимости "Пользователь"), и его модифицируйте. А когда нужно исполнять запросы, перед вызовом TableAdapter.Fill или Update установите свойство Connection

    this.myTableAdapter.Connection = new OleDbConnection(Properties.Settings.Default.fioConnectionStringReal);
    this.myTableAdapter.Fill(this.databaseDataSet.myTable);

    • Помечено в качестве ответа Никитка 21 апреля 2017 г. 7:57
    20 апреля 2017 г. 17:15
  • Ну раз так, значит это свойство ConnectionString надо оставить, чтобы студия успокоилась. Просто создайте рядом другое string-свойство  fioConnectionStringReal (с областью видимости "Пользователь"), и его модифицируйте. А когда нужно исполнять запросы, перед вызовом TableAdapter.Fill или Update установите свойство Connection

    this.myTableAdapter.Connection = new OleDbConnection(Properties.Settings.Default.fioConnectionStringReal);
    this.myTableAdapter.Fill(this.databaseDataSet.myTable);

    выдает ошибку, но она решается перезагрузкой visual studia

    после чего можно снова писать запросы

    21 апреля 2017 г. 8:16
  • Ну раз так, значит это свойство ConnectionString надо оставить, чтобы студия успокоилась. Просто создайте рядом другое string-свойство  fioConnectionStringReal (с областью видимости "Пользователь"), и его модифицируйте. А когда нужно исполнять запросы, перед вызовом TableAdapter.Fill или Update установите свойство Connection

    this.myTableAdapter.Connection = new OleDbConnection(Properties.Settings.Default.fioConnectionStringReal);
    this.myTableAdapter.Fill(this.databaseDataSet.myTable);

    https://social.msdn.microsoft.com/Forums/ru-RU/c6f95a3b-6ab5-40aa-81a5-2a5a6e21d607/-sql-textbox1-c?forum=vsru#7cf84113-e52b-4b9d-9ca0-e8341972911b

    Ты не мог бы помочь еще с этим

    23 апреля 2017 г. 18:03