![]() |
|
Модераторы: gambit |
![]()
|
|
| vretsky |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Как загрузить данные из DataSet в таблицу БД? Суть проблемы такова :
Заполняю DataSet данными из одной БД, теперь как вставить эту таблицу в другую БД? SQL команда такого типа: INSERT INTO TABLE1 (F1, F2) SELECT F3,F4 FROM TABLE2 где TABLE2 хранится в DataSet |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
vretsky,
Приветствую. Возможно два варианта. Первый: работаем в дизайнере, да? если да, то после того как создал ДатаСет, соединенный с первой БД, и для его таблицы получил ТаблеАдаптер, создай второй ТаблеАдаптер, но соединенный с другой БД. Через первый ТА заполняешь данными таблицу ДС из первой БД, а через второй ТА загружаешь данные из нее в таблицу второй БД. Второй вариант: работаем ручками и создаем ДатаСет и ДатаАдаптер(не путать с ТаблеАдаптером) программно. Если да, то создай второй ДатаАдаптер и для него укажи соединение со второй БД. Остальное так же как и в первом варианте. Удачи Это сообщение отредактировал(а) thomas - 30.10.2007, 20:30 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| vretsky |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 48 Регистрация: 29.10.2007 Репутация: нет Всего: нет |
Проблема вот в чем :
Для заполнения таблицы БД вызывается метод Update, приблизетельно так: this.odbcDataAdapter1.Update(this.dataSet1,"table_mable"); а для того чтобы Update сработал нужно чтобы в ДатаАдаптере были прописаны InsertCommand.CommandText и(или) UpdateCommand.CommandText (для моей задачи достаточно "Инсерта") Вот тут и наступает загвоздка, я не могу корректно прописать ИнсертКомманд INSERT INTO TABLE1 (F1, F2) SELECT F3,F4 FROM TABLE2 так как TABLE2 находится в другой БД! Неужели нет метода заполнить таблицу БД из dataSet без перебора по циклу ? |
|||
|
||||
| thomas |
|
||||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 35 Всего: 65 |
vretsky,
Значиться так. Создаешь один ДатаСет - dataSet1. Создаешь ДВА ДатаАдаптера - odbcDataAdapter1 и odbcDataAdapter2. Первому прописываешь соединение с первой БД, второму со второй. Первый ДатаАдаптер будет нужен что бы заполнить таблицу ДатаСет данными из первой БД. А вот второй ДатаАдаптер(соединенный с другой БД) нужен будет что бы взять данные из таблицы ДатаСет и методом this.odbcDataAdapter2.Update(this.dataSet1,"table_mable"); обновить таблицу во второй БД. И вот такое
не канает. Через SQL-запросы к ДатаСет не ОБРАТИТЬСЯ!!! К таблицам БД без проблем, а к таблицам ДатаСет НЕТ!!! И для второго ДатаАдаптера используй
А вообще, по моему опыту, заполнение данными пустой таблицы БД из полной таблицы ДатаСет, производиться построчно путем выполнения для каждой строчки команды INSERT.
где row[F3] и row[F4] значения полей из таблицы ДатаСет. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |