Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > .NET: Базы данных > Несколько запросов в одном connection`е


Автор: valyan 09.12.13, 12:05
Здравствуйте. Делаю несколько запросов в одном connection, вот так
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     try
    {
                    server = "localhost";
                    database = "bit_mast";
                    uid = "root";
                    password = "admin";
                    string connectionString = "SERVER=" + server + ";" +
                                              "DATABASE=" + database + ";" +
                                              "UID=" + uid + ";" +
                                              "PASSWORD=" + password + ";";
                    string query = "select id_car, model, marka, number from cars";
                    
                    connection = new MySqlConnection(connectionString);
                    MySqlCommand command = new MySqlCommand(query, connection);
                    
                    connection.Open();
                    MySqlDataAdapter adapt = new MySqlDataAdapter(command);
                    DataSet ds = new DataSet();
                    adapt.Fill(ds);
                    CarsGrid.DataSource = ds.Tables[0].DefaultView;
        
                    query = "select id_driver, name, family, father from drivers";
                    command = new MySqlCommand(query, connection);
                    adapt = new MySqlDataAdapter(command);
                    ds = new DataSet();
                    adapt.Fill(ds);
                    DriversGrid.DataSource = ds.Tables[0].DefaultView;
                    
                    query = " select crews.id, crews.name, cars.name_car, CONCAT(d.name, d.family,  d.father)"+
                            " from crews " +
                            " join cars on crews.id_car = cars.id_car " +
                            " join drivers as d on crews.id_driver = d.id_driver ";
                    command = new MySqlCommand(query, connection);
                    adapt = new MySqlDataAdapter(command);
                    ds = new DataSet();
                    adapt.Fill(ds);
                    CrewsGrid.DataSource = ds.Tables[0].DefaultView;
                    
                    
                    connection.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

Насколько это правильно? Или лучше сделать как-нибудь через пул?

Добавлено
Извиняюсь, переместите тему.

Автор: UncleBob 09.12.13, 14:23
Это нормально, чем меньше коннекшенов - тем лучше. И правильнее ее использовать через using, чтобы гарантировать ее закрытие.

Автор: valyan 09.12.13, 14:28
Спасибо!

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)