Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/62: Рейтинг темы: голосов - 62, средняя оценка - 4.82
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
1

Копирование данных из одной базы таблице в другую базу таблиц

11.03.2012, 17:25. Просмотров 11951. Ответов 11
Метки нет (Все метки)

Задача Насколько реально имея 2 базы с разными таблицами перенести из одной в другую таблицу данные? я тут химичел вот что получил
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void zarplata_Load(object sender, EventArgs e)
        {
            conn.Open();
            comand.Connection = conn;
            string qvery = "SELECT * FROM REESTR";
            comand.CommandText = "insert into REESTR (a) select (nom_fil) from idis";
            OleDbDataAdapter adapter = new OleDbDataAdapter(qvery, conn);
            adapter.Fill(ds); 
            dataGridView1.DataSource = ds.Tables[0].DefaultView;
            comand.ExecuteNonQuery();
 
            conn.Close();
            
 
        }
подключение базы
C#
1
2
3
        OleDbConnection conn = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=c:\\Lab\\Zarplata\\Zarplata\\bin\\Debug\\;Mode=Share Deny None;Collating Sequence=RUSSIAN");
        OleDbCommand comand = new OleDbCommand();
        DataSet ds = new DataSet();
но то ли я в запросе накасячил то ли хз что. помогите плиз
ошибку кидает " Field B does not accept null values" хотя поля чяровские и в пустое пытался загнать и в забитое та же ошибка не могу определить конкретно что не так.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 17:25
Ответы с готовыми решениями:

Создания базы данных и таблиц в базу данных в SQL Server Managment Studio
Здраствуйте. Нужно создать такую маленькую программу при помощи которой можно создать базу данных и...

Копирование структуры и данных одной таблицы в другую
Всем привет, возник вопрос при копировании таблицы из БД сервера в таблицу локальной БД....

копирование таблиц из одной базы в другую
Есть БД Access, к которой я соединяюсь при помощи ODBC драйвера. В Access есть нужная мне таблица,...

Копирование данных из одной таблицы в другую в пределах одной базы. Не работает счетчик
Делаю копирование данных из одной таблицы в другую в пределах одной базы. procedure...

Копирование данных с одной базы в другую
Здравствуйте. Подскажите как из указанного ниже скопировать данные с одной таблицы в другую, при...

11
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
11.03.2012, 17:40 2
Скорее всего у какогото поля установлено свойство IS NOT NULL.
Если базы находятся на одном сервере, то быстрее всего перенести данные из одной таблицы в другую будет запросом (для СУБД MS SQL):
T-SQL
1
2
INSERT INTO Test1.dbo.tbl_Account (ID, ActivityID)
SELECT id, ActivityID FROM Test2.dbo.tbl_Account
где Test1 и Test2 - базы на одном и том же сервере.
1
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
11.03.2012, 20:46  [ТС] 3
а объясни пожалуйста что значит Test2.dbo.tbl_Account это обязательно dbo.tbl_Account
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
11.03.2012, 23:22 4
Неа! Такая запись означает полный путь к таблице на сервере. Если я хочу выполнить запрос в котором участвуют несколько БД, то необходимо:
1. Указать БД Test1
2. Указать схему Test1.dbo
3. Указать таблицу Test1.dbo.tbl_Account

tbl_Account - это название таблицы для примера.

Если необходимо переписать данные из одной таблицы БД в таблицу другой БД (при условии что БД на одном сервере), то используется такая форма записи, чтобы сервер понимал, что происходит.

Чтобы переписать данные из одной таблицы в другую необходимо воспользоваться инструкцией INSERT в сочетании с SELECT перечислив как поля для записи так и поля для чтения.
1
11.03.2012, 23:22
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
12.03.2012, 15:07  [ТС] 5
подскажите а UPDATE может копировать данные из разных баз и изменять. то есть может работать как insert into тока не вставлять строку а изменять в ней данные.
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
12.03.2012, 15:13 6
Нет инструкция UPDATE предназначена только для обновления существующих записей.
0
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
12.03.2012, 16:29  [ТС] 7
Хорошо тогда подскажите пожалуйста как мне забрать данные из столбцов одной базы и вписывать в другую но невстовляя строку как insert into а просто заменять данные в ней?
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
12.03.2012, 20:01 8
Нужно написать UPDATE. Например такой:
T-SQL
1
2
3
4
5
UPDATE A1
SET A1.ActivityID = A2.ActivityID, A1.Name = A2.Name
FROM VLP.dbo.Account AS A1
INNER JOIN VLP_Main.dbo.tbl_Account AS A2 ON
A1.ID = A2.ID
таблица Account находится в базе VLP, а таблица tbl_Account в таблице VLP_Main. Соединяем таблицы по INNER JOIN, чтобы получить только те записи, которые есть в обоих таблицах.
1
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
16.03.2012, 12:15  [ТС] 9
а если я не могу одинаковые поля ставит((( в базах есть 8 столбцов и они разные могу я из одной базы перенести данные в другую
0
_katon_
386 / 242 / 20
Регистрация: 03.10.2011
Сообщений: 1,003
16.03.2012, 14:19 10
Не совсем понял вопрос! Что не получается сделать? И лучше будет если вы покажете структуры таблиц экспорта и импорта.
0
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
16.03.2012, 16:23  [ТС] 11
пример
0
Вложения
Тип файла: zip пример.zip (1.2 Кб, 69 просмотров)
SpiritAT
3 / 3 / 0
Регистрация: 02.09.2011
Сообщений: 107
16.03.2012, 23:26  [ТС] 12
Спасибо всем сделал)))
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
string pth = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
            OleDbConnection conn = new OleDbConnection(
                 String.Format("Provider=VFPOLEDB.1;Data Source='{0}';Mode=Share Deny None;Collating Sequence=RUSSIAN", pth)
                 );
            // 1. выдернуть номер отделения и префикс из таблицы с шапкой
                string sql = string.Format("SELECT prefix,nom_fil from {0}", tableTop);
                cmd.CommandText = sql;
 
                OleDbDataReader rdr = cmd.ExecuteReader();
                rdr.Read();
                string nom_fil = rdr.GetString(1);
                string prefix = rdr.GetString(0);
                rdr.Close();
 
                // 2. формируем имя выходной таблицы
                string nFil = nom_fil.Substring(nom_fil.LastIndexOf("№")+1).Trim();
                string tableFinal = prefix.Trim() + nFil + Nomer_plategki.Text.Trim();
 
                // 3. формируем выходной файл
                StringBuilder sb_30spaces = new StringBuilder();
                sb_30spaces.Append(' ', 30);
                string _30spaces = sb_30spaces.ToString();
                // шапка
                sql = string.Format("select nom_fil as A,'{0}' as B,'{0}' as C,'{0}' as D, '{0}' as E, '{0}' as F, '{0}' as G into table {1} from {2}", _30spaces, tableFinal, tableTop);
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
 
                sql = string.Format("insert into {0} values ('К платежному поручению №','{1}','от','{2}','{3}','{3}','{3}')",
                    tableFinal,
                    Nomer_plategki.Text.Trim(),
                    DateTime.Today.ToString("dd'.'MM'.'yyyy"),
                    _30spaces
                    );
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
 
                sql = string.Format("insert into {0} select 'Наименование,ОГРН,банк счёта',nom_organ,acc_pred,'{2}','{2}','{2}','{2}' from {1}",
                    tableFinal,
                    tableTop,
                    _30spaces
                    );
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
 
                sql = string.Format("insert into {0} select 'По договору',nom_dog,'От',dat_dog,'{2}','{2}','{2}' from {1}",
                    tableFinal,
                    tableTop,
                    _30spaces
                    );
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
 
                sql = string.Format("insert into {0} values ('{1}','{2}','{3}','{4}','{5}','{6}','{7}')",
                    tableFinal,
                    "№п/п",
                    "Номер счета",
                    "Фамилия",
                    "Имя",
                    "Отчество",
                    "Сумма",
                    "Примечание"
                    );
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
 
                // данные
                sql = string.Format("insert into {0} select * from {1}", 
                    tableFinal, tableData
                );
                cmd.CommandText = sql;
                cmd.ExecuteNonQuery();
 
                conn.Close();
0
16.03.2012, 23:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2012, 23:26

Копирование таблицы с одной Базы Данных в Другую
доброго времени суток такое дело, надо из одной базы данных одной таблицы скопировать в другую бд...

Access. Копирование с одной базы b1.mdb содержимое в другую базу b2.mdb
Через ADOConnection1 подключил базу b1.mdb, ADOConnection2 подключил базу b2.mdb. В каждой из баз...

Перенос данных с одной базы interbase на другую чистую базу
Всем доброго времени суток! помогите пожалуйста с проблемой: есть база данных interbase размером...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru