Область видимости, DataSet и DataGridView - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Я недавно начал изучать C#, по-этому имеются некоторые вопросы. Имеется некоторый тестовый код, написанный мной в целях самообучения
        private void LoadServicesData()
        {
            string selectQuery = "SELECT * FROM F_SERV";
            //using (OleDbConnection connection = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=D:\Test\"))
            //{
            //  using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(selectQuery, connection))
            //  {
            //    connection.Open();
            //    dataAdapter.Fill(dataSetServices, "SERVICES");
            //    connection.Close();
            //  }
            //}
            OleDbConnection connection = new OleDbConnection(@"Provider=VFPOLEDB.1;Data Source=D:\Test\");
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(selectQuery, connection);
            //dataSetServices DataSet = new DataSet();
 
            try
            {
                DataSet dataSetServices = new DataSet();
                connection.Open();
                dataAdapter.Fill(dataSetServices, "SERVICES");
                bindingSourceServices.DataSource = dataSetServices;
                bindingSourceServices.DataMember = "SERVICES";
                dataGridViewServices.AutoResizeRows();
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                connection.Close();
            }
        }
Мне не понятно каким образом локальный DataSet dataSetServices после завершения метода LoadServicesData остаётся в памяти? Область видимости, если я правильно понимаю, заканчивается в блоке try. Тогда почему в dataGridView отображаются данные? dataGridView что-ли кеширует их где-то у себя? Буду очень признателен за компетентный ответ. Заранее, спасибо.
Гуру .net, откликнитесь, пожалуйста. Вопрос очень важен для меня
Может быть вопрос задан некорректно? Или не в соответствующей ветке форума? Подскажите, модераторы, я переформулирую.

Решение задачи: «Область видимости, DataSet и DataGridView»

textual
Листинг программы
var dataset = grid.DataSource as DataSet;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5