|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Доброго времени суток! Подскажите логику решения следующей задачи. Имеется две таблицы, нужно по строчно их сравнить, если строка первой таблицы совпадает(два столбца из всей строки) с строкой второй таблицы(с двумя столбцами второй таблицы), тогда во второй таблице под строкой в которой нашлись совпадения надо создать ее дубликат, не удаляя оригинала и т.д по всей таблице. Набросал код, посмотрите что не так Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2019, 23:45 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19посмотрите что не так Всё не так. Такие вещи делаются на сервере, скриптом или внутри ХП, в одной транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 05:50 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Путь решения в данном случае только через Datatable, если можете, подскажите как организовать верный цикл проверки ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 07:34 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19, попробуйте через LINQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 08:35 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
vb_subSpartak19, попробуйте через LINQ. С тем же успехом можно посоветовать через циклы ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 18:14 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19, Вы расскажите задачу, а не как Вы придумали ее решить. Потому что решаете вы ее как-то коряво. Дубль строки нужен же не просто так? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 18:21 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Cat2, Надо сравнить две таблицы по строчно, если данные в строках совпадают(точнее в двух ячейках) между двумя таблицами, тогда в таблице 2, создаем ниже копию этой совпавшей строки, при этом не удаляем оригинал, нужно это для того чтобы до заполнить данными появившиеся новые строки, при этом оставив оригинал не тронутым ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2019, 20:05 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19Cat2, Надо сравнить две таблицы по строчно, если данные в строках совпадают(точнее в двух ячейках) между двумя таблицами, тогда в таблице 2, создаем ниже копию этой совпавшей строки, при этом не удаляем оригинал, нужно это для того чтобы до заполнить данными появившиеся новые строки, при этом оставив оригинал не тронутым Это не задача, это как Вы придумали ее решать. Для чего нужно дубликаты-то создавать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 08:23 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
не вижу, как поменяется ИД а вообще алгоритм полный отстой, будет работать очень медленно уже для хотя бы пары тысяч строк, не говоря про сотню тысяч ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 10:40 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
andreymx, нужно делать без циклов? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 10:57 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19andreymx, нужно делать без циклов?как уже говорила группа товарищей, через БД если же хочешь именно изврат и циклом - подумай о кардинальных методах ускорения процесса например, можно в Dictionary записать конкатенацию двух полей первой таблицы и как значение - ИДшник а потом второй таблицей искать значение в Dictionary и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 11:38 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
andreymx, зачем делать конкатенацию 2 полей, если можно хранить структуру из 2 полей в виде ключа справочника? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 12:30 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Roman Mejtesandreymx, зачем делать конкатенацию 2 полей, если можно хранить структуру из 2 полей в виде ключа справочника?в диктионари? У меня не получалось, но я глубоко не рыл ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 13:53 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
andreymx, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
У анонимных типов методы эквивалентности и получения хеш кода переопределены ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 15:05 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Вообще-то у ТС VBA ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 17:06 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
andreymxВообще-то у ТС VBA часом не перепутал VB.NET с VBA? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 17:28 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
ИзопропилandreymxВообще-то у ТС VBA часом не перепутал VB.NET с VBA?сорри, возможно ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2019, 17:40 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Что примерно должно получится, подскажите как это реализовать через цикл или есть более правильный способ ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2019, 23:01 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19, Сделал так, но всегда есть лишнии строки Dim toinsert As DataRow = table3.NewRow Dim s As Integer For i = 0 To table1.Rows.Count - 1 If table1.Rows(i).Item(3).ToString = DBNull.Value.ToString Then Else For i2 = 0 To table2.Rows.Count - 1 If table2.Rows(i2).Item(3).ToString = DBNull.Value.ToString Then Else If table1.Rows(i).Item(3).ToString = table2.Rows(i2).Item(3).ToString Then s = s + 1 table3.ImportRow(table2.Rows(i2)) End If Next End If Next MsgBox(s) DataGridView3.DataSource = table3 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2019, 23:06 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2019, 23:08 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19Что примерно должно получится Ну это ж банальный outer join: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
Результат ниже на скриншоте. Соответственно, в гугле ищем: https://www.google.com/search?q=c# linq left join https://www.google.com/search?q=c# data table left join ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 06:07 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Почему же аутер ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 07:32 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Спасибо за ответ, но я правда не совсем понимаю как это на VB.NET будет выглядеть ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 07:42 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19Сон Веры Павловны, Спасибо за ответ, но я правда не совсем понимаю как это на VB.NET будет выглядетьsqlCommand почитай ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 07:57 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
andreymxПочему же аутер Потому что внешнее, коим являются и left join, и right join, и full outer join. Left join и right join могут быть написаны со словом outer (left outer join, right outer join) - оно в даннм случае опционально, и может быть опущено. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 09:22 |
|
|
start [/forum/topic.php?fid=20&fpage=19&tid=1398896]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
24ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 128ms |
0 / 0 |