如何使用C#将数据插入MS访问文件?

时间:2012-03-25 16:36:27

标签: c# visual-studio visual-studio-2010 visual-studio-2008

我创建了一个带有名为“login”的表的访问文件。列是用户名和密码。

现在我想用他们的用户名和密码向表中添加新成员。该信息将从textbox1和textbox2获得。

我该怎么做?

顺便问一下,什么是连接字符串?它来自数据库属性吗? 我得到的是“@ Provider = Microsoft.ACE.OLEDB.12.0;数据源= C:\ Users \ qianren \ Desktop \ iplan version \ WindowsFormsApplication2 \ WindowsFormsApplication2 \ bin \ Debug \ log.accdb”。这是对的吗?这是编写连接字符串的正确方法吗?

1 个答案:

答案 0 :(得分:3)

首先,您需要在Visual Studio的“添加引用”对话框中的.Net选项卡下添加对Microsoft.Office.Interop.Access的引用。

然后创建两个变量,一个用于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!