Как вставить данные в файл доступа MS с помощью C #? - PullRequest
3 голосов
/ 25 марта 2012

Я создал файл доступа с таблицей с именем «логин».В столбцах указаны имя пользователя и пароль.

Теперь я хочу добавить новых членов в таблицу с их именем пользователя и паролем.Информация будет получена из textbox1 и textbox2.

Как я могу это сделать?

Кстати, что такое строка подключения?Это из свойств базы данных?я получаю «@ Provider = Microsoft.ACE.OLEDB.12.0; источник данных = C: \ Users \ qianren \ Desktop \ версия iplan \ WindowsFormsApplication2 \ WindowsFormsApplication2 \ bin \ Debug \ log.accdb».Это правильно?Это правильный способ написать строку подключения?

1 Ответ

3 голосов
/ 25 марта 2012

Прежде всего вам необходимо добавить ссылку на Microsoft.Office.Interop.Access на вкладке .Net в диалоговом окне «Добавить ссылку» в Visual Studio.

Затем создайте две переменные, одну для текста textbox1, другую для текста textbox2 следующим образом:

var foo = textbox1.Text;
var bar = textbox2.Text;

Затем добавьте using Microsoft.Office.Interop.Access; к своим операторам использования.

Затем вам нужно создать новый экземпляр класса Application, поэтому добавьте в ваш метод следующее:

var ap = new Microsoft.Office.Interop.Access.Application();

Затем откройте свою базу данных так:

ap.OpenCurrentDatabase(@"C:\Users\qianren\Desktop\iplan version\WindowsFormsApplication2\WindowsFormsApplication2\bin\Debug\log.accdb");

Затем запустите запрос на вставку следующим образом:

ap.DoCmd.RunSQL(String.Format("INSERT INTO login ( Username, [Password] ) SELECT "{0}" AS LG, "{1}" AS PW;", foo, bar));

Если вы не уверены в синтаксисе, вы можете сконструировать этот запрос с помощью конструктора запросов Microsoft Access, нажать кнопку SQL в правом нижнем углу экрана и скопировать SQL.

Затем закройте свою базу данных так:

ap.CloseCurrentDatabase();

Наконец, очистите свой неуправляемый объект следующим образом:

Marshal.ReleaseComObject(ap); //Sorry this is nearly a year late, just noticed it!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...