将企业库用于 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 数据库的主要内容,如果未能解决你的问题,请参考以下文章

使用 OleDb 和 Access 数据库引擎的 C# Excel 插入错误

使用 Decimal 参数的数据类型不匹配 - OleDb、C#、Access

无法通过 C# oledb 将记录插入 MS Access

字段验证规则中的“喜欢”运算符不适用于 OLEDB 插入

OleDb 进入 Access 数据库的查询表达式中缺少运算符

OLEDB 使用 DSN 连接到 Access 数据库