Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Перекинуть данные между двумя базами данных, ADO.NET / 4 сообщений из 4, страница 1 из 1
29.03.2011, 08:58
    #37187021
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть данные между двумя базами данных, ADO.NET
Коллеги, возник следующий вопрос.

Дано: DataSet с данными, в нем находится четко одна таблица.

Нужно: записать этот DataSet в другую базу данных (т.е. не ту, из которой он был получен). В новой базе данных известно имя таблицы и список аттрибутов.

Внимание: типы данных аттрибутов таблицы-источника и таблицы-назначения совпадают!
Таким образом мне нужно: 1) поменять имена аттрибутов в DataSet'е; 2) поменять имя таблицы; 3) Поменять коннекшн; 4) Записать.

Ограничения:
1) Нельзя использовать SqlBulkInsert, т.к. на конечной таблице стоит триггер.
2) Нельзя использовать Sql Server Integration Services, т.к. я уже в нем и мне нужна возможность динамически определять маппинг аттрибутов таблицы-источника и конечной таблицы, этого можно добиться только через Script Task, что я и пытаюсь сделать.

Каким образом это можно реализовать?

Спасибо.
...
Рейтинг: 0 / 0
29.03.2011, 10:21
    #37187194
Barkan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть данные между двумя базами данных, ADO.NET
svenom,

Может быть SqlDataAdapter попробовать?
...
Рейтинг: 0 / 0
29.03.2011, 12:03
    #37187475
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть данные между двумя базами данных, ADO.NET
svenom,

А запрос написать впадлу?
Типа
Код: plaintext
1.
INSERT INTO db1..table1 (a,b,c)
SELECT a,b,c FROM db2..table2
...
Рейтинг: 0 / 0
30.03.2011, 11:17
    #37189674
stimpi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перекинуть данные между двумя базами данных, ADO.NET
SqlDataAdapter1.Fill(DataTable1) - с коннекшеном на первую БД

SqlDataAdapter2.Fill(DataTable2) -с коннекшеном на вторую БД


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
foreach(var row in DataTable1.Rows)
{
var newRow = DataTable2.NewRow();
//заполняем newRow по вашему маппингу
DataTable2.Rows.Add(newRow);
}
//после этого все новые записи будут иметь тип изменений Added
SqlDataAdapter2.Update();
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Перекинуть данные между двумя базами данных, ADO.NET / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]