Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема при доступе к значениям List<> / 6 сообщений из 6, страница 1 из 1
05.02.2013, 22:58
    #38139077
rusik48
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при доступе к значениям List<>
Здравствуйте!

Обращаюсь к базе, а полученные значения копирую в переменную returning_list
Вот так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
            DbDataReader rdr = cmd1.ExecuteReader();
            List<List<object>> returning_list = new List<List<object>>();
            List<object> list1 = new List<object>();
            while (rdr.Read())
            {
                list1.Clear();
                for (int i = 0; i < qty_of_returning_fields; i++)
                {
                    code1 = (int)rdr[0];
                    list1.Add(rdr[i]); 
                }
                returning_list.Add(list1);
            }



теперь хочу считать значения с returning_list
вот так:

Код: c#
1.
2.
3.
4.
5.
                MessageBox.Show("  "
                + "\n returning_list[700][0].ToString() = " + returning_list[700][0].ToString()
                + "\n returning_list[700][1].ToString() = " + returning_list[700][1].ToString()
                + "\n returning_list[700][2].ToString() = " + returning_list[700][2].ToString()
                );



или так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
            foreach (List<object> record in returning_list)
            {
                    MessageBox.Show("1 !action_master8!        "
                    + "\n record[0].ToString() = " + record[0].ToString()
                    + "\n record[1].ToString() = " + record[1].ToString()
                    + "\n record[2].ToString() = " + record[2].ToString()
                    );
            }



Почему то всегда я получаю только одно последнее значение взятое из базы.
Например если в таблице были такие значения:
1, "значение 1", 111
2, "значение 2", 222
3, "значение 3", 333

я всегда получаю только последнюю строку: 3, "значение 3", 333

Почему так?
...
Рейтинг: 0 / 0
06.02.2013, 00:33
    #38139169
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при доступе к значениям List<>
rusik48, List<T> является ссылочным типом и т.к. ты создаешь всего один его экземпляр, то в итоговый список попадает N ссылок на один и тот же объект. Чтобы исправить ошибку перенеси строку List<object> list1 = new List<object>(); вместо list1.Clear();
...
Рейтинг: 0 / 0
06.02.2013, 00:41
    #38139174
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при доступе к значениям List<>
/me думает
интересно куда должен выскочить MessageBox если на сервере, допустим, нет монитора
...
Рейтинг: 0 / 0
06.02.2013, 00:48
    #38139184
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при доступе к значениям List<>
может вместо мозготраха DataTable получить?
...
Рейтинг: 0 / 0
06.02.2013, 00:49
    #38139186
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при доступе к значениям List<>
.интересно куда должен выскочить MessageBox если на сервере, допустим, нет монитора
WindowStation есть, монитор опционален
...
Рейтинг: 0 / 0
06.02.2013, 13:20
    #38139865
rusik48
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема при доступе к значениям List<>
bazilerusik48, List<T> является ссылочным типом и т.к. ты создаешь всего один его экземпляр, то в итоговый список попадает N ссылок на один и тот же объект. Чтобы исправить ошибку перенеси строку List<object> list1 = new List<object>(); вместо list1.Clear();

да наверно так. я немного по другом сделал, но ошибка была в этом. Спасибо!!!
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Проблема при доступе к значениям List<> / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]