|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#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 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Это c# ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 09:47 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Spartak19Сон Веры Павловны, Это c# ? Что - это? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 09:48 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Просто как это написать на vb.net? Пример написан на чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 10:00 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныandreymxПочему же аутер Потому что внешнее, коим являются и left join, и right join, и full outer join. Left join и right join могут быть написаны со словом outer (left outer join, right outer join) - оно в даннм случае опционально, и может быть опущено.ТСу же нужен как раз иннер ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 10:15 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
andreymxТСу же нужен как раз иннер Да ну? Внимательней посмотрите на картинку здесь: 21912530 и здесь: 21912570 Откуда при inner join в третьей таблице взяться строке с "Яблоки/зеленый/нет данных"? Spartak19Пример написан на чем? На T-SQL. Spartak19Просто как это написать на vb.net? Без понятия, я не использую vb.net, и никогда не использовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 11:49 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныandreymxТСу же нужен как раз иннер Да ну? Внимательней посмотрите на картинку здесь: 21912530 и здесь: 21912570 Откуда при inner join в третьей таблице взяться строке с "Яблоки/зеленый/нет данных"? читаю в стартовом посте: автор Имеется две таблицы, нужно по строчно их сравнить, если строка первой таблицы совпадает (два столбца из всей строки) с строкой второй таблицы (с двумя столбцами второй таблицы), тогда во второй таблице под строкой в которой нашлись совпадения надо создать ее дубликат , не удаляя оригинала и т.д по всей таблице. Набросал код, посмотрите что не так ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 12:03 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
andreymxчитаю в стартовом посте: автор Имеется две таблицы, нужно по строчно их сравнить, если строка первой таблицы совпадает (два столбца из всей строки) с строкой второй таблицы (с двумя столбцами второй таблицы), тогда во второй таблице под строкой в которой нашлись совпадения надо создать ее дубликат , не удаляя оригинала и т.д по всей таблице. Набросал код, посмотрите что не так Ну, а я читаю вот это того же автора: Spartak19Что примерно должно получится, подскажите как это реализовать через цикл или есть более правильный способ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 12:06 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Он то хоть себя понимает, надеюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 12:39 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
сорт: желтый, зеленый, красный и высший (фейспалм) чем запись яблоки - красный отличается от записи яблоки - красный? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 21:26 |
|
Создание дубля строки в таблице
|
|||
---|---|---|---|
#18+
Roman Mejtesсорт: желтый, зеленый, красный и высший (фейспалм) чем запись яблоки - красный отличается от записи яблоки - красный? Для получения нужного ТС результата достаточно сделать соединение таблиц по Фрукты-Сорт ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 12:52 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1398896]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
135ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 505ms |
0 / 0 |