Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 5
1
.NET 2.x

Циклическое заполнение строк в DataGridView

08.05.2014, 09:18. Показов 2589. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Подскажите возможно ли реализовать такую задумку?
Пытаюсь в цикле заполнить датагрид из адаптера, при том что в каждом проходе создается новая колонка в дата гриде и заполняется данными. Но в результате получается "лесенка" из данных. т.е. в первом проходе цикла заполняет в первой колонке к примеру 7 записей, а во второй колонке начинает вставлять данные уже не с нулевой строки а с 7, и получается такая лесенка по столбцам. Хотелось бы видеть данные во всех столбцах с 0 позиции строки.
C#
1
2
3
4
5
6
7
8
9
10
11
12
dsgetFider.Clear();
getAprobTableAdapter.Fill(dsgetFider.getAprob, dt1, dt2, Convert.ToInt32(dataGridView1[1, i].Value.ToString()));
                    
DataRow[] rowrecEnerg = dsgetFider.getAprob.Select(null, null);
 
for (int i1 = 0; i1 < rowrecEnerg.Length; i1++)
{
    i2 = i + 1;
    DataRow row = dataTable1.NewRow();
    row["Column" + i2] = rowrecEnerg[i1]["Value"];
    dataTable1.Rows.Add(row);
}
что получается в результате
123 
123 
123 
123
123
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2014, 09:18
Ответы с готовыми решениями:

DataGridView: добавление строк и заполнение их данными в цикле
Подскажите пожалуйста, в чем ошибка? private void wr() { for (int...

Циклическое смещение строк
Доброго времени суток)) Помогите решить задачу чайнику, буду невероятно благодарен: Ввести...

Циклическое перемещение строк массива вверх
циклическое перемещение строк массива вверх

Написать программу Циклическое перемещение строк массива вниз
Нужна программа простенькая до завтрашнего утра

8
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
08.05.2014, 09:25 2
Задача не ясна. Ты правильно параметры в Fill задаёшь? Что такое dt1 и dt2? И почему нельзя заполнить сразу нужные данные?
0
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 5
08.05.2014, 09:47  [ТС] 3
dt1, dt2 это переменные, которые возвращают значение типа dataTime, т.е я период задаю там.
в запросе не получилось выстроить данные. поэтому начал пробовать через студию сделать.
Результат хотелось получить следующий
123123
123123
123
0
33 / 31 / 7
Регистрация: 16.08.2012
Сообщений: 126
08.05.2014, 10:14 4
когда переходишь на новую колонку, сбрасывай индекс строки в ноль.
0
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 5
14.05.2014, 08:40  [ТС] 5
попробовал выставить индекс в 0 при вставке, но лесенка получается в обратную сторону. т.е. во втором столбце он вставляет строку на 0 индекс, но при этом в первом столбце строки смещаются вниз.
C#
1
dataTable1.Rows.InsertAt(row,0);
результат
 123
 123
123123
123 

или есть другой способ сброса индекса строки?
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
14.05.2014, 09:03 6
fear-dr, Ваш код из первого поста несет минимум полезной информации. В частности, не понято, что такое i и от куда оно берется. Предположительный метод борьбы следующий:
C#
1
2
DataRow row = i1 < RowCount ? dataTable1.NewRow() : dataTable1.Rows[i1 % RowCount];
// где RowCount - это количество строк, которое должно быть в таблице. Я хз, от куда он берется, поэтому здесь он в виде абстрактной переменной
До ума, надеюсь, сами доведете.
0
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 5
14.05.2014, 09:28  [ТС] 7
i это просто счетчик, который задает сколько будет количество столбцов в таблице. пользователь сам выбирает себе количество.
на форме два компонента datagridView, в одном список с галочками(он же и задает количество столбцов по количеству выбранных галочек), а во втором отображаются данные.
т.е. польхователь выбрал в первом datagridView 2 галочки, то во втором datagridView появится в цикле 2 новых столбца. и вот во время второго прохождения цикла, он начинает вставлять данные "лестницей"
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
14.05.2014, 09:54 8
Лучший ответ Сообщение было отмечено fear-dr как решение

Решение

Цитата Сообщение от fear-dr Посмотреть сообщение
вот во время второго прохождения цикла, он начинает вставлять данные "лестницей"
Из всего вышенаписанного вы не уяснили самую важную вещь. На каждой итерации вы вставляете новую строку. Для того, чтобы записать данные во второй столбец, нужно взять уже имеющуюся строку и в нее записать. В свете разъяснение, которые я, возможно, понял по своему, код будет выглядеть примерно так:
C#
1
2
3
4
5
6
7
for(int ind = 0, RowCount = (int)Math.Ceiling(1.0 * rowrecEnerg.Length / i); ind < rowrecEnerg.Length; ++ind)
{
    DataRow row = ind < RowCount ? dataTable1.NewRow() : dataTable1.Rows[ind % RowCount];
    row[ind / RowCount] = rowrecEnerg[ind]["Value"];
    if (dataTable1.IndexOf(row) == -1)
        dataTable1.Add(row);
}
0
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 5
15.05.2014, 12:24  [ТС] 9
kodv, Спасибо, теперь понял что не так делал.
я просто вначале думал что в ячейку заносится значение командой dataTable1.Rows.Add(row), поэтому ее применял в цикле. но потом с вашей помощью разобрался :-)
0
15.05.2014, 12:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2014, 12:24
Помогаю со студенческими работами здесь

DataGridView заполнение
Всем привет. Подскажите как заполнить данные в DataGridView. dataGridView1-&gt;Rows-&gt;Cells =...

Заполнение dataGridView
Подскажите пожалуйста,как заполнить dataGridView У меня есть код private void bolshe(double...

Заполнение DataGridView
Добрый через уважаемые форумчани. Возник вопрос следующего характера. в БД есть таблица &quot;Image&quot;:...

Заполнение DataGridView
Не могу разобраться как заполнить DataGridView рандомными числами столбцом!! Помогите, если не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru