Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как загрузить данные из DataSet в таблицу БД? Как загрузить данные из DataSet в БД? 
:(
    Опции темы
vretsky
Дата 30.10.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 29.10.2007

Репутация: нет
Всего: нет



Как загрузить данные из DataSet в таблицу БД? Суть проблемы такова :
Заполняю DataSet данными из одной БД, теперь как вставить эту таблицу в другую БД?
SQL команда такого типа: 
INSERT INTO TABLE1 (F1, F2)
SELECT F3,F4
FROM TABLE2
где TABLE2 хранится в DataSet

PM MAIL   Вверх
thomas
Дата 30.10.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



vretsky, 
Приветствую.
Возможно два варианта.
Первый:
работаем в дизайнере, да? если да, то после того как создал ДатаСет, соединенный с первой БД, и для его таблицы получил ТаблеАдаптер, создай второй ТаблеАдаптер, но соединенный с другой БД.
Через первый ТА заполняешь данными таблицу ДС из первой БД, а через второй ТА загружаешь данные из нее в таблицу второй БД.
Второй вариант:
работаем ручками и создаем ДатаСет и ДатаАдаптер(не путать с ТаблеАдаптером) программно. Если да, то создай второй ДатаАдаптер и для него укажи соединение со второй БД.
Остальное так же как и в первом варианте.

Удачи  smile 

Это сообщение отредактировал(а) thomas - 30.10.2007, 20:30


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
vretsky
Дата 31.10.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 без перебора по циклу ?
PM MAIL   Вверх
thomas
Дата 31.10.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



vretsky, 
Значиться так.
Создаешь один ДатаСет -  dataSet1.
Создаешь ДВА ДатаАдаптера - odbcDataAdapter1 и odbcDataAdapter2.
Первому прописываешь соединение с первой БД, второму со второй.
Первый ДатаАдаптер будет нужен что бы заполнить таблицу ДатаСет данными из первой БД.
А вот второй ДатаАдаптер(соединенный с другой БД)  нужен будет что бы взять данные из таблицы ДатаСет и методом this.odbcDataAdapter2.Update(this.dataSet1,"table_mable"); обновить таблицу во второй БД.

И вот такое
Цитата

SQL команда такого типа: 
INSERT INTO TABLE1 (F1, F2)
SELECT F3,F4
FROM TABLE2
где TABLE2 хранится в DataSet

не канает. Через SQL-запросы к ДатаСет не ОБРАТИТЬСЯ!!! К таблицам БД без проблем, а к таблицам ДатаСет НЕТ!!!

И для второго ДатаАдаптера используй 
Код

cmdBuild = new SqlCommandBuilder(odbcDataAdapter2);
odbcDataAdapter2.UpdateCommand = cmdBuild.GetUpdateCommand();
odbcDataAdapter2.Update(this.dataSet1,"table_mable"); 


А вообще, по моему опыту, заполнение данными пустой таблицы БД из полной таблицы ДатаСет, производиться построчно путем выполнения для каждой строчки команды INSERT.
Код

INSERT INTO TABLE1 (F1, F2) VALUES( "+row[F3] + ","+ row[F4]+ ");

где row[F3] и row[F4]  значения полей из таблицы ДатаСет.



--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.