Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227

Объединение нескольких таблиц в одну

25.04.2019, 10:14. Показов 5309. Ответов 27

Студворк — интернет-сервис помощи студентам
Доброго времени суток

Уважаемые друзья нужна Ваша помощь

Задачка такая

Есть несколько таблиц U1 (Id, Name) , U2 (Id, Name) , U3 (Id, Name) колонки у всех таблиц идентичные .
Находятся таблицы по адресу D:\Form\

Нужно при нажатии кнопки button1 из выше перечисленных таблиц сформировать таблицу R1 (Id, Name)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2019, 10:14
Ответы с готовыми решениями:

EF CodeFirst Объединение нескольких классов в одну таблицу
Народ подскажите, как сделать. Надо сделать одну таблицу с кучей полей. Чтобы было удобно я решил разбить ее на несколько классов, а...

Запрос из нескольких таблиц для объединения в одну
Добрый день. Столкнулся с такой проблемо. Необходимо составить правильно запрос чтобы из нескольких таблиц делалась выборка и заменялась...

Объединение нескольких таблиц в одну
вот есть 5 таблиц test_1,test_2.....5 , у них всего два поля id(autoincrement) и word(varchar(50)) и есть таблица test тоже с такими же...

27
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
25.04.2019, 17:16
Студворк — интернет-сервис помощи студентам
shadow_2, тогда каждый запрос отдельно
C#
1
2
3
4
5
string query = "SELECT * INTO [R1] FROM [U1]";
//выполнение запроса
string query = "SELECT * INTO [R1] FROM [U2]";
//выполнение запроса
//...
Цитата Сообщение от shadow_2 Посмотреть сообщение
А можно это сделать каким-то другим способом, не через SQL запросы ?
Можно. Теория: http://www.realcoding.net/arti... utykh.html
Берем первый файл. Убираем у него завершающий байт. Запоминаем кол-во записей(берем из заголовка) RowCount.
Берем следующий файл. Увеличиваем RowCount на кол-во записей в этом файле.
Читаем из файла все байты, кроме заголовка и завершающего байта. Записываем их в первый файл.
...
Когда файлы кончатся, в заголовке 1-го файла проставляем общее кол-во записей из RowCount и записываем завершающий байт.
1
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
26.04.2019, 10:51  [ТС]
Цитата Сообщение от Igr_ok Посмотреть сообщение
тогда каждый запрос отдельно
Огромное спасибо . Только как теперь оба запроса передать в DataAdapter ?
Помогите пожалуйста , просто никогда не работал с двойными запросами.

Вот мой код.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
string crd = "Connect";
           OleDbConnection con = new OleDbConnection();
           con.ConnectionString = crd;
           con.Open();
 
          string query = "SELECT * INTO [R1] FROM [U1] ";
          string query_1 = "SELECT * INTO [R1] FROM [U3] ";
 
          OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
 
           con.Close();
 
 
           adapter.SelectCommand.ExecuteNonQuery();
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
26.04.2019, 11:15
Цитата Сообщение от shadow_2 Посмотреть сообщение
Только как теперь оба запроса передать в DataAdapter ?
Поочередно.
0
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
26.04.2019, 13:24  [ТС]
Цитата Сообщение от Даценд Посмотреть сообщение
Поочередно.
Пробовал так .

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string crd = "Connect";
           OleDbConnection con = new OleDbConnection();
           con.ConnectionString = crd;
           con.Open();
 
          string query = "SELECT * INTO [R1] FROM [U1] ";
          string query_1 = "SELECT * INTO [R1] FROM [U3] ";
 
          OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
          OleDbDataAdapter adapter_1 = new OleDbDataAdapter(query_1, con);
 
           con.Close();
 
 
           adapter.SelectCommand.ExecuteNonQuery(); 
           //adapter_1.SelectCommand.ExecuteNonQuery();
Но так не работает.

Понимаю что проблема в последней строке . Но вот как связать оба адаптера , не знаю .
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
26.04.2019, 13:54
Цитата Сообщение от shadow_2 Посмотреть сообщение
Но вот как связать оба адаптера , не знаю .
А я не знаю, зачем вообще нужен адаптер.
Попробуйте так:
C#
1
2
3
4
5
6
7
8
9
10
11
using (OleDbConnection con = new OleDbConnection(строка_подключения))
{
    con.Open();
    OleDbCommand com = new OleDbCommand();
    com.Connection = con;
    com.CommandText = "insert into R1 select * from U1";
    com.ExecuteNonQuery();
    com.CommandText = "insert into R1 select * from U2";
    com.ExecuteNonQuery();
    con.Close();
}
0
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
26.04.2019, 14:17  [ТС]
Цитата Сообщение от Даценд Посмотреть сообщение
Попробуйте так:
Наверное где-то туплю. Но работает только так

C#
1
2
3
4
5
6
7
8
9
10
11
using (OleDbConnection con = new OleDbConnection("Provider = Microsoft.Jet.Oledb.4.0; ...))
           {
               con.Open();
               OleDbCommand com = new OleDbCommand();
               com.Connection = con;
               com.CommandText = "SELECT * INTO [R1] FROM [U1] ";
               com.ExecuteNonQuery();
               //com.CommandText = "SELECT * INTO [R1] FROM [U3] ";
               //com.ExecuteNonQuery();
               con.Close();
           }
При этом в R1 вносятся результаты только из таблицы U1
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
26.04.2019, 14:25
Лучший ответ Сообщение было отмечено shadow_2 как решение

Решение

shadow_2,
Команда select into создает новую таблицу.
У меня использовались команды insert into и предполагалось, что таблица R1 уже создана.
Если таблицы R1 нет, то первая команда select into, последующие insert into.
1
3 / 3 / 0
Регистрация: 15.10.2018
Сообщений: 227
26.04.2019, 14:30  [ТС]
Даценд,

Дааааааа ! Огромное спасибо . Именно то что нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2019, 14:30

Объединение нескольких таблиц в одну
Добрый день! Excel'ем приходится пользоваться нечасто, поэтому прошу не пинать :) Суть задачи: Есть несколько таблиц с...

Объединение нескольких разных таблиц в одну
Добрый день! Помогите пожалуйста с таблицей. Имеется несколько таблиц с разным кол-вом столбцов. Все они связаны с одной таблицей. ...

Объединение данных из нескольких таблиц в одну
Здравствуйте уважаемые участники форума. Прошу помочь советом, как решить такую задачку. Имеется несколько таблиц, они схожи по...

Объединение таблиц в одну
Здравствуйте! имеются несколько таблиц вида ФИО / ПРЕДМЕТЫ предмет1 предмет2 Кумовьев 38 63 Онипченко 44 75 Кравченко 63 32 ...

Объединение таблиц в одну сводную
Скажите, пожалуйста, в одной книги есть три листа с данными и лист "Итог" (Excel). Таблицы абсолютно одинаковые, только данные разные....


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru