Соединение с базой делать постоянным или нет?

ADO.NET
  1. 4 года назад
    Добавлено 4 года назад Vik

    Приветствую. Начал разбираться с подключением базы данных Access и возник вопрос, нужно ли делать подключение с базой постоянным или только на время использования? Сам использую для подключения и чтения данных из базы такую конструкцию:

    OleDbConnection BDConnection = new OleDbConnection();
    BDConnection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=bd.mdb";
    OleDbCommand BDCommand = BDConnection.CreateCommand();
    BDCommand.CommandText = "SELECT * FROM tab1 WHERE id=1";
    BDConnection.Open();

    Например подключился, заполнил ListBox данными, отключился. Затем я сделал поиск по базе с таким запросом при вводе в TextBoxName.Text:

    OleDbConnection BDConnection = new OleDbConnection();
    BDConnection.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=bd.mdb";
    OleDbCommand BDCommand = BDConnection.CreateCommand();
    BDCommand.CommandText = "SELECT * FROM tab1 WHERE name LIKE '" + TextBoxName.Text + "%'";
    BDConnection.Open();

    То есть как только я ввожу символ в TextBoxName.Text то происходит соединение с базой с нужным запросом. Потом я подумал, правильно ли будет если с каждым вводом символа, каждый раз идет подключение и отключение базы?

    Ну и возникло пару вопросов:

    1. Нужно ли при поиске по базе делать подключение к базе постоянным?
    2. Можно ли как то, к уже подключенной базе посылать запрос в BDCommand.CommandText?
    3. Может быть подскажите что нибудь еще полезного по работе с базами.
  2. год назад

    Я всегда закрываю после запроса. Для чего его держать открытым..

  3. Vik
    К базе держать соединениеоткрытым не нужно. Да, каждый раз нужно будет его открывать заново. Вы не переживайте, сейчас уже давно используется ConnectionPool, встроенный в сам провайдер для базы данных, который сам разруливает ситуацию по поводу соединений.

  4. Удалено год назад - Alexandr_Erohin

или зарегистрируйтесь чтобы ответить