Во-первых, для тех, кто хотел бы спросить, ПОЧЕМУ, черт возьми, я СУЩЕСТВУЮ с SQL-сервера до ДОСТУПА, позвольте мне рассказать вам сценарий.
Есть некоторые ПК с очень низкой конфигурацией (256 МБ ОЗУ, процессор 2 ГГц). Я не могу установить SQL Server. Поэтому я хочу, чтобы основные операции выполнялись на сервере SQL, а некоторые операции по сбору и проверке данных выполнялись на более медленной машине.
Итак, поехали:
Я хочу скопировать таблицу из SQL Server в MS Access 2007. Я попытался:
1) Подключитесь к серверу sql, заполните объект с данными, прочитав таблицу с сервера sql.
2) Создайте соединение с MS Access и используйте метод Dataadapter.Update для обновления таблицы в базе данных MS Access.
Однако 2-й шаг не работает, хотя и не выдает никакой ошибки. Вот мой код:
SqlConnection cnn = new SqlConnection(@"initial catalog=DBTempleERM;user id=aditya;password=Aditya_ravi$;Data Source=adityalappy\sqlexpress");
SqlCommand cmd = new SqlCommand("SELECT * FROM donationdetails", cnn);
cnn.Open();
System.Data.SqlClient.SqlDataAdapter sDA = new SqlDataAdapter(cmd);
DataTable donationdetails = new DataTable();
sDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;
sDA.Fill(donationdetails);
MessageBox.Show(donationdetails.Rows.Count.ToString());
OleDbConnection oleConn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Jet OLEDB:Database Password=Aditya_ravi$;Data Source=C:\dbt.accdb");
oleConn.Open();
OleDbCommand oleComm = new OleDbCommand();
OleDbDataAdapter oDA = new OleDbDataAdapter(oleComm);
OleDbCommandBuilder oCb = new OleDbCommandBuilder(oDA);
oDA.Update(donationdetails);
В конце выполнения не выдается никакой ошибки, но я не вижу записей, скопированных с SQL Server в MS Access.
Я узнал, что массовое копирование SQL нельзя использовать для копирования с SQL Server в Access.
Я также хочу добавить первичный ключ из таблицы SQL Server в таблицу MS Access.