Передача данных из одной базы данных в другую таблицу базы данных - PullRequest
0 голосов
/ 07 октября 2009

Я хочу сделать резервную копию моей базы данных Access прагматично. И после принятия всех данных в резервном копировании я хочу удалить данные из исходной базы данных. (Так что это не займет много времени при запросах и фильтрации через приложение.)

Имя исходной базы данных - Data.mdb. Имя базы данных назначения - Backup.mdb Оба защищены одним и тем же паролем.

Для этих целей я пишу запрос на C # следующим образом.

string conString = "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=Backup.mdb;Jet    
                   OLEDB:Database Password=12345";
OleDbConnection dbconn = new OleDbConnection();
OleDbDataAdapter dAdapter = new OleDbDataAdapter();
OleDbCommand dbcommand = new OleDbCommand();

try
{
   if (dbconn.State == ConnectionState.Closed)
      dbconn.Open();

 string selQuery = "INSERT INTO [Bill_Master] SELECT * FROM [MS Access;DATABASE="+     
                   "\\Data.mdb" + "; Jet OLEDB:Database Password=12345;].[Bill_Master]";

 dbcommand.CommandText = selQuery;
 dbcommand.CommandType = CommandType.Text;
 dbcommand.Connection = dbconn;
 int result = dbcommand.ExecuteNonQuery();
 }
 catch(Exception ex)   {}

Все идет хорошо, если я пытаюсь без файла базы данных паролей. Я думаю, что ошибка при передаче пароля на запросе. Я пытаюсь выполнить через запрос доступа, но он говорит «Неверный аргумент». Пожалуйста, есть ли другая логика программирования для этого. Спасибо

Prashant YuvaDeveloper

Ответы [ 4 ]

3 голосов
/ 07 октября 2009

Идентичны ли Data.mdb и Backup.mdb в strcuture? Если это так, я бы не стал копировать данные через SQL, а просто скопировал весь файл.

2 голосов
/ 21 июля 2011

Попробуйте убрать пробел между ; и Jet… Таким образом, формат будет:

INSERT INTO [Bill_Master] SELECT * FROM [MS Access;DATABASE="+     
               "\\Data.mdb" + ";Jet OLEDB:Database Password=12345;].[Bill_Master]
1 голос
/ 08 октября 2009

Не удалять данные. В будущем это станет намного сложнее для анализа или запросов. Если это занимает много времени, просмотрите индексирование или переход на SQL Server. Редакция Express бесплатна и может обрабатывать базы данных до 4 Гб.

1 голос
/ 07 октября 2009

Вы можете скопировать и переименовать Data.mdb, а затем обрезать все таблицы в Data.mdb. Гораздо проще, чем пытаться скопировать таблицу за раз ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...