将企业库用于 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