0

我想知道是否可以使用 DAAB 调用带有参数的 MS Access 存储查询。

我正在使用 Northwind 示例数据库来测试这个场景,我在 MS Access 中创建了以下带有参数的存储查询:

PARAMETERS FirstName Text ( 255 );
SELECT Employees.ID
FROM Employees
WHERE (((Employees.[First Name])=[@FirstName]));

此查询与名称一起存储:GetEmployeeIDByName

我在 DAAB 上创建了一个包装器,以允许访问各种数据库,如 SQL、Oracle、任何 OLEDB 和 ODBC 数据库。

以下是我的测试示例代码:

Database db = new GenericDatabase("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\Database\Access\Northwind 20071.accdb",OleDbFactory.Instance);

DbCommand cmd = db.GetStoredProcedure("GetEmployeeIDByName");

db.AddInParameter(cmd,"@FirstName",DbType.String,40);

object employeeID = db.ExecuteScalar();

我收到错误无效操作。我不确定我是否正确调用了存储查询,因为我可以调用没有任何错误的没有任何参数的存储查询。

4

1 回答 1

0

我能够解决这个问题。问题出在 Northwind 示例数据库上。然后,我将 Northwind 数据库从 SQL Server 导入 MS Access,并在 MS Access 中创建了存储的查询。这是我与 Enterprise Library DAAB 团队进行的详细讨论:entlib.codeplex.com/Thread/View.aspx?ThreadId=223653 希望对您有所帮助。Access 不关心 @ 字符,您可以使用或不使用 @ 字符来调用参数。

于 2010-08-30T03:12:20.507 回答