|
0 / 0 / 0
Регистрация: 31.07.2017
Сообщений: 4
|
|
Объединение таблиц в dataGridView31.07.2017, 15:46. Показов 6789. Ответов 10
Метки нет (Все метки)
Как объединить две несвязные таблицы в одном dataGridView? Одна таблица из MS SQL, а другая загружается в формате .xls. Объединение должно быть реализовано по номеру телефона.
0
|
|
| 31.07.2017, 15:46 | |
|
Ответы с готовыми решениями:
10
Объединение таблиц Объединение таблиц Объединение таблиц из БД в DGV |
|
14291 / 9376 / 1352
Регистрация: 21.01.2016
Сообщений: 35,332
|
|
| 31.07.2017, 16:07 | |
|
Elena_Sch, данный контрол ничего ни с чем объединять не умеет. Вам это нужно сделать самостоятельно, в коде, и уже готовое подсунуть DataGridView-у.
0
|
|
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
| 31.07.2017, 17:36 | |
|
Если объединяете таблицы достаточно большого обьема (свыше нескольких тысяч строк каждая) - имеет смысл тогда загружать обе таблицы на сервер - и делать процесс именно там, так как шарп не предназначен для этого - пойдут тормоза.
0
|
|
|
0 / 0 / 0
Регистрация: 31.07.2017
Сообщений: 4
|
|
| 01.08.2017, 11:37 [ТС] | |
|
А если попробовать с помощью reportViewer? Тоже не получится реализовать?
0
|
|
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
| 01.08.2017, 16:14 | |
|
Определитесь с тем, что хотите сделать.
Пока что для меня это звучит как "сферический конь в вакууме". т.е. есть 2 таблицы... а какие поля - они одинаковые или разные? - как объединять хотите - просто добавить одну ко второй или есть общее поле В общем - более узкие вопросы задавайте - получите более четкие ответы.
0
|
|
|
0 / 0 / 0
Регистрация: 31.07.2017
Сообщений: 4
|
|
| 01.08.2017, 16:16 [ТС] | |
|
Есть две таблицы в каждой из которых есть один одинаковый столбец, к одной таблице нужно добавить другую, с учетом сопоставления данных.
0
|
|
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
|
| 01.08.2017, 16:23 | |
|
Linq Join вижу только этот вариант, если таблички маленькие, или же загрузка на сиквел и join средствами сиквела с последующей загрузкой результата в шарп. Пробуйте.
0
|
|
|
645 / 529 / 324
Регистрация: 20.05.2015
Сообщений: 1,471
|
|||||||
| 04.08.2017, 03:37 | |||||||
|
Для начала загрузить данные хотя бы DataTable.
Кликните здесь для просмотра всего текста
З. Ы. А не проще загрузить данные из Excel в таблицу MS SQL, а дальше уже обрабатывать как одну базу
0
|
|||||||
|
0 / 0 / 0
Регистрация: 31.07.2017
Сообщений: 4
|
|
| 04.08.2017, 11:02 [ТС] | |
|
try
{ string constr = @"Provider=Microsoft.ACE.OLEDB.12.0 ata Source=" + textBox1.Text + ";Extended Properties= "Excel 12.0;HDR=Yes;IMEX=1";";OleDbConnection con = new OleDbConnection(constr); OleDbDataAdapter sda = new OleDbDataAdapter("SELECT [Номер телефона], [Дата заключения контракта], [Абонент], [Дата рождения], [Адрес], [Контактная информация], [Паспортные данные], [ИНН] FROM [" + comboBox1.SelectedValue + "]", con); DataTable dt = new DataTable(); sda.Fill(dt); foreach (DataRow row_excel in dt.Rows) // бежим по таблице excel { foreach (DataGridViewRow row_sql in dataGridView1.Rows) // бежим по таблице sql { if (row_excel["номер телефона"] == row_sql["номер телефона"]) { SetMergedRowValue(row_excel, row_sql, 4); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } Ругнулся на типы объектов Добавлено через 16 секунд try { string constr = @"Provider=Microsoft.ACE.OLEDB.12.0 ata Source=" + textBox1.Text + ";Extended Properties= "Excel 12.0;HDR=Yes;IMEX=1";";OleDbConnection con = new OleDbConnection(constr); OleDbDataAdapter sda = new OleDbDataAdapter("SELECT [Номер телефона], [Дата заключения контракта], [Абонент], [Дата рождения], [Адрес], [Контактная информация], [Паспортные данные], [ИНН] FROM [" + comboBox1.SelectedValue + "]", con); DataTable dt = new DataTable(); sda.Fill(dt); foreach (DataRow row_excel in dt.Rows) // бежим по таблице excel { foreach (DataGridViewRow row_sql in dataGridView1.Rows) // бежим по таблице sql { if (row_excel["номер телефона"] == row_sql["номер телефона"]) { SetMergedRowValue(row_excel, row_sql, 4); } } } } catch (Exception ex) { MessageBox.Show(ex.Message); } Ругнулся на типы объектов
0
|
|
|
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
|
||||||
| 04.08.2017, 11:25 | ||||||
|
У объектов DataTable есть стандартный метод Merge() - лучше воспользуйтесь им, а не занимайтесь разрисовкой грида. И не нужно будет никаких тормознутых вложенных циклов плодить на гриде. Вот, как пример - кусочек живого проекта
0
|
||||||
|
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
|
|||||||
| 04.08.2017, 15:54 | |||||||
0
|
|||||||
| 04.08.2017, 15:54 | |
|
Помогаю со студенческими работами здесь
11
Нужен запрос на объединение таблиц Объединение таблиц БД посредством LINQ Объединение полей из разных таблиц Объединение таблиц в Access и вывод в DataGridView Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|