c# - 如何使用 C# 将数据插入 MS access 文件?

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

我创建了一个访问文件,其中包含一个名为“login”的表。列是用户名和密码。

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

我该怎么做?

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

最佳答案

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

然后创建两个变量,一个用于您的 textbox1 文本,另一个用于您的 textbox2 文本,如下所示:

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

然后将 using Microsoft.Office.Interop.Access; 添加到您的 using 语句中。

然后您需要创建 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!

关于c# - 如何使用 C# 将数据插入 MS access 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861913/

相关文章:

c# - 需要空数据库的 Entity Framework 代码优先单元测试

c# File.Delete 恢复?

c# - 为 Visual Studio 编写解决方案分析器

git - 如何在 Visual Studio 2010 Beta 2 上安装 GitExtensions?

c# - 写入没有读取权限的文件

c# - 选择项目时如何避免winforms treeview图标发生变化

.net - 无法在 visual studio 2019 中运行 IIS Express

c++ - 无法中断执行。该进程当前未执行该类型代码

javascript - Visual Studio 2010-智能感知和 JavaScript 中的突出显示不起作用

visual-studio-2010 - 我怎样才能找出附加到 w3p.exe 的调试器