Заполнение списка List экземплярами string[] - C#

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

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

Добрый день. Читаю данные с SQL-запроса и хочу заполнить список podr массивами string[] line. После того как добавляю line в podr, если обратиться к любому индексу podr, возвращается только последние значение podr.
Листинг программы
  1. {
  2. int Column = 6;//число столбцов в запросе
  3. string[] line = new string[Column]; //Column полей из результата запроса
  4. string[] line_temp = new string[Column]; //временный массив для наглядности
  5. List<string[]> podr = new List<string[]>(); //в каждую строку этого списка будет писаться string[] line
  6. try
  7. {
  8. SqlConnection cn = new SqlConnection();
  9. cn.ConnectionString= @"Data Source=namepc;Initial Catalog=test;User ID=appuser;Password=password;Pooling=False";
  10. SqlDataReader myReader = null;
  11. cn.Open();
  12. SqlCommand myCommand = new SqlCommand("select * from stru where Code LIKE '01__' AND DateEnd IS NULL ", cn);
  13. myReader = myCommand.ExecuteReader();
  14. int i = 0;
  15. while (myReader.Read())
  16. {
  17. line[0]=myReader["ID"].ToString();
  18. line[1] = myReader["IDOwner"].ToString();
  19. line[2] = myReader["Name"].ToString();
  20. line[3] = myReader["Caption"].ToString();
  21. line[4] = myReader["Initials"].ToString();
  22. line[5] = myReader["Code"].ToString();
  23. podr.Insert(i,line); //поместил в i-строку списка podr массив line состоящий из Column строк
  24. line_temp = podr[i]; //считываю в line_temp массив string[], расположенный в списке podr с индексом i
  25. System.Diagnostics.Debug.WriteLine("podr[{0}]="+line_temp[2], i); //вывожу 2 столбец Name
  26. //теперь считываю то, что должно было записаться в podr при первом проходе цикла while
  27. line_temp =podr[0];
  28. System.Diagnostics.Debug.WriteLine("podr[0]="+line_temp[2]);
  29. i++;
  30. }
  31. } catch (Exception ex) {}
  32. }
В результате System.Diagnostics.Debug.WriteLine выводит только последние значения line_temp, записанные при последнем проходе цикла (даже если обращаюсь к 0 индексу списка podr). И в результате весь список podr заполнен только последним значением массива line[]. Что делаю не так?

Решение задачи: «Заполнение списка List экземплярами string[]»

textual
Листинг программы
  1. {
  2. int Column = 6;//число столбцов в запросе
  3.  
  4. List<string[]> podr = new List<string[]>(); //в каждую строку этого списка будет писаться string[] line
  5.  
  6.   try
  7.           {
  8.                 SqlConnection cn = new SqlConnection();
  9.                 cn.ConnectionString= @"Data Source=namepc;Initial Catalog=test;User ID=appuser;Password=password;Pooling=False";
  10.                 SqlDataReader myReader = null;
  11.                 cn.Open();
  12.                 SqlCommand myCommand = new SqlCommand("select * from stru where  Code LIKE '01__' AND DateEnd IS NULL ", cn);
  13.                 myReader = myCommand.ExecuteReader();
  14.                 int i = 0;
  15.                 while (myReader.Read())
  16.                 {
  17.                     string[] line = new string[Column]; //Column полей из результата запроса
  18.                     line[0]=myReader["ID"].ToString();
  19.                     line[1] = myReader["IDOwner"].ToString();
  20.                     line[2] = myReader["Name"].ToString();
  21.                     line[3] = myReader["Caption"].ToString();
  22.                     line[4] = myReader["Initials"].ToString();
  23.                     line[5] = myReader["Code"].ToString();
  24.                     podr.Insert(i,line); //поместил в i-строку списка podr массив line состоящий из Column строк
  25.              
  26.                     System.Diagnostics.Debug.WriteLine("podr[{0}]="+podr[i][2],i); //вывожу 2 столбец Name                
  27.  
  28.  
  29.                     System.Diagnostics.Debug.WriteLine("podr[0]=" + podr[0][2]); //вывожу 2 столбец Name при первом прохождении цикла
  30.                     i++;
  31.                    
  32.                 }
  33. } catch (Exception ex) {}
  34. }

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


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

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

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут