【问题标题】:Use Enterprise library for OLEDB Access database将企业库用于 OLEDB Access 数据库
【发布时间】: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 数据库中工作吗?

【问题讨论】:

    标签: c# ms-access oledb enterprise-library application-blocks


    【解决方案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,那将是一个完全不同的问题。
    • 能否请您看看我编辑的问题并帮我一个忙?谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多