Как получить данные из доступа к MDB и положить их в таблицу postgresql, используя Visual C #? - PullRequest
1 голос
/ 06 июля 2010

Хорошо, что я уже сделал - могу ли я подключиться к таблице доступа к базе данных через поставщика Microsoft.Jet.OLEDB, затем я могу получить данные из таблицы, используя запрос select, OleDbDataAdapter и DataSet.

Теперь я могу подключиться к Postgresql через Npgsql, но что меня ускользает - как я могу получить данные из таблицы доступа и поместить их в таблицу postgresql?

Что яхотите выполнить - это получить данные из таблицы mdb доступа и вставить их в таблицу postgresql, используя запрос "select into".

Ответы [ 3 ]

1 голос
/ 06 июля 2010

Я не думаю, что в этом случае вы сможете использовать запрос «SELECT INTO» из одной базы данных в другую (так как две базы данных находятся на разных движках). Что вам нужно будет сделать, это сохранить данные чтения в некотором объекте CLR из MDB, а затем прочитать данные CLR в базу данных PostgreSQL, что довольно тривиально. Просто невозможно сделать так, как ты хочешь

0 голосов
/ 12 июля 2010

Эй, спасибо всем, кто помог мне, я наконец-то понял это.Итак, для всех, кто столкнется с такой же ситуацией - вот решение с правильной строкой подключения для Postgresql.

0 голосов
/ 06 июля 2010

Вот некоторые очень любительские заметки, которые могут вам помочь.Они ссылаются на SQL Server Express, потому что у меня нет доступа к postgressql.Я получил строку подключения, связав таблицу SQL-сервера с Access и проверив свойство соединения, однако вы также можете посмотреть здесь: http://www.connectionstrings.com/postgre-sql. Две строки вставляют значения из таблицы1 в Access в таблицу 2 в SQL Express.В Access запрос будет выполнен без предупреждений, если он не будет корректным (в этом случае Access 2010).Я пробовал это в Visual C # 2010 Express.

//create the database connection
OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\docs\\db.mdb");

//create the command object and store the sql query
OleDbCommand aCommand = new OleDbCommand("INSERT into [ODBC;Description=TEST;DRIVER=SQL Server;SERVER=COMP\\SQLEXPRESS;Trusted_Connection=Yes;DATABASE=test].Table2 (id, atext) select id, atext from table1", aConnection);
...