Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > доступ к ДБ Access


Автор: Ch0bits 11.6.2005, 22:15
Здравствуйте, уважаемые коллеги!
Не сочтите за трудность, покажите пожалуйста пример консольной программы, которая получает доступ к локальной базе Access и может изменять её. Можно с помощью SQL или методами какого-нибудь встроенного класса.

С уважением Vadim999.

Автор: Дрон 11.6.2005, 23:08
Код

OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=data.mdb")

conn.Open();

DataTable tblResults = new DataTable();
OleDbDataAdapter ad = new OleDbDataAdapter("SELECT * FROM MyTable",conn);
ad.Fill(tblResults); // заполнит талибцу tblResults результатом выборки

OleDbCommand cmd = new OleDbCommand("INSERT INTO MyTable (MyColumn) VALUES ('123')",conn);
cmd.ExecuteNonQuery(); // выполнит insert

conn.Close();


Ну и предварительно не забыть
Код

using System.Data;
using System.Data.OleDb;


Остальное сам придумай smile

ЗЫ: Из всего вышеперечисленного нетривиальным я считаю только Connection String.... Ну никак я не могу запомнить это дурацкое название провайдера smile

Автор: Ch0bits 12.6.2005, 19:53
К сожалению оказалось что этот способ не годится, т.к. в передаваемой строке('123') нельзя использовать символы типа ' или [].

Автор: Дрон 12.6.2005, 20:33
Vadim999
Можешь (и это даже лучше будет) использовать параметры
Код

OleDbCommand cmd = new OleDbCommand("INSERT INTO MyTable (MyColumn) VALUES (@param)",conn);
cmd.Parameters.Add("@param","a]bc[[''[]''kl'm"); // вот так можно хоть картинку запихнуть
cmd.ExecuteNonQuery(); // выполнит insert


PS: А MSDN теперь не в моде? smile

Автор: Ch0bits 12.6.2005, 22:53
Дрон
Спасибо, очень помог.

Цитата
А MSDN теперь не в моде?

Там хакер глаз сломит. smile
Уж лучше у живых людей спросить. smile

Автор: VirusUZ 6.7.2010, 09:47
ConnectionStrings
  • Provider=Microsoft.Jet.OLEDB.4.0; Data Source=data.mdb
  • DSN=MS Access Database;DBQ=D:\meta\load.mdb;DefaultDir=D:\meta;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;  //для оффисе 2007
  • База данных МS Access ...  // для оффисе 2003

Автор: Экскалупатор 6.7.2010, 10:04
)))и вот не прошло и пяти лет как топик стартер дождался ответа.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)