将企业库用于 OLEDB Access 数据库

Posted

技术标签:

【中文标题】将企业库用于 OLEDB Access 数据库【英文标题】:Use Enterprise library for OLEDB Access database 【发布时间】:2010-07-26 05:41:56 【问题描述】:

我想为 MS Access 数据库(OLEDB 提供程序)使用 Microsoft 企业库数据应用程序块

我想要带有企业库的基于参数的 INSERT 功能(就像我们使用基于参数的代码的 SQL 提供程序一样 - database.params.Add("@EmpName", this.EmpName);

对于 MS Access 数据库连接,我想要同样的东西。

谁能告诉我我该怎么做?

提前致谢。

这段代码会起作用吗?

恶魔大人, 感谢您的解释。我知道与 SQL 的 INSERT、更新和删除相关的一切。我希望它与 MS ACCESS 兼容。好的,告诉我,下面的代码会起作用吗?

string query = "INSERT INTO DB (EmployeeID, Name) VALUES (@EmployeeID, @Name)

Database db = DatabaseFactory.CreateDatabase();

DbCommand sqlCommand = db.GetCommandFromText(query);

db.AddInParameter(sqlCommand, "@EmployeeID", this.EmployeeID);
db.AddInParameter(sqlCommand, "@Name", this.Name);

这个例子能在 MS Access 数据库中工作吗?

【问题讨论】:

【参考方案1】:

您可以使用 OleDbCommand 设置参数和查询,就像您在 SQL Provider 上使用 SqlCommand 一样。

OleDbCommand Overview

OleDbCommand Class Members

使用您的示例:

string query = "INSERT INTO DB (EmployeeID, Name) VALUES (@EmployeeID, @Name)"

Database db = DatabaseFactory.CreateDatabase();

DbCommand command = db.db.GetSqlStringCommand(query);
db.AddInParameter(command, "@EmployeeID", this.EmployeeID);
db.AddInParameter(command, "@Name", this.Name);
db.ExecuteNonQuery(command);

应该可以。

【讨论】:

谢谢,但我想要使用企业库数据应用程序块的基于参数的插入代码。提前致谢。 @nunu,如果您知道如何编写 SQL INSERT,则几乎可以使用相同的语法。当它涉及查询本身以及调用它的 c# 代码时。由 DataBaseFactory 创建的 Database 对象将在 OleDB 上运行,而不是 SqlCommand,您使用 OleDbCommand(如果您甚至需要创建一个)。如果您不知道如何编写 SQL INSERT,那将是一个完全不同的问题。 能否请您看看我编辑的问题并帮我一个忙?谢谢。

以上是关于将企业库用于 OLEDB Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章