powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Размножить строки таблицы
12 сообщений из 12, страница 1 из 1
Размножить строки таблицы
    #39163412
Фотография _Novichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой DataTable
id data1 data2 data3 data41item1 / item2 item5 item7 item9 / item102item11 item13 / item14 item15 item173item19 item21 / item22 item23 item254item27 item29 / item30 item31 item335item35 item37 / item38 item39 item416item43 item45 item47 item49 / item507item51 item52 item53 item55
Нужно преобразовать его в такой вид
data1 data2 data3 data4item1 item5 item7 item9item1 item5 item7 item10item2 item5 item7 item9item2 item5 item7 item10item11 item13 item15 item17item11 item14 item15 item17item19 item21 item23 item25item19 item22 item23 item25item27 item29 item31 item33item27 item30 item31 item33item35 item37 item39 item41item35 item38 item39 item41item43 item45 item47 item49item43 item45 item47 item50item51 item52 item53 item55

есть какие-то идеи, как это сделать?
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39163444
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Novichok,
Надо не сетку модифицировать а массив данных
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39163457
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Novichok,

https://ru.wikipedia.org/wiki/Размещение
(в Вашем случае без повторений)
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39164453
Фотография _Novichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,

Мне кажется, что делать это на таблице в ~150k записей, - будет долго.
При вставке в таблицу тоже нет возможности этого делать
Данная таблица нужна для определенного процесса, и в последующем не используется.
Поэтому решение разбивать ее частями уже во время работы программы мне кажется оптимальным.
Решил это рекурсивным методом
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39164467
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_NovichokРешил это рекурсивным методомБД для этого дела самое то
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39164737
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
_NovichokЕсть такой DataTable
Тяжелый случай. Разработчик БД что-нибудь слышал про нормализацию?

Хотя бы про первую форму?

1NFКаждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39165643
Фотография _Novichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я знаю про нормальные формы, дело не в них.
Есть приложение, для которого такая логика нужна - специфическая прикладная область.
Не я придумывал ту структуру, которая сейчас есть, не мне ее ломать.
Мне остается только допиливать поверх существующего. Поэтому и пляшу от данных полученных в DataTable, а не от БД
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39165719
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну у нас есть в некоторых местах такая логика. В справочнике исторически сложилась пара сотен перечислений
Работает в запросах через табличную функцию
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select *
  from чего-то там
 Where id in
(
   select id
     from table(MyFunction('1,3,7-19'))
)

для запроса ТС это будет выглядеть так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select t.id,
       t1.id data1,
       t2.id data2,
       t3.id data3,
       t4.id data4
  from t,
       table(MyFunction(data1)) t1,
       table(MyFunction(data2)) t2,
       table(MyFunction(data3)) t3,
       table(MyFunction(data4)) t4
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39165741
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Novichok,
В исходных данных всего 5 столбцов?
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39165967
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_NovichokРешил это рекурсивным методомМожно и без рекурсии.
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39166301
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usman_NovichokРешил это рекурсивным методомМожно и без рекурсии.вложенным циклом по количеству полей
...
Рейтинг: 0 / 0
Размножить строки таблицы
    #39166327
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxUsmanпропущено...
Можно и без рекурсии.вложенным циклом по количеству полейЕсли заранее известно кол-во полей (столбцов).
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Размножить строки таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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