我想知道是否可以使用DAAB使用参数调用MS Access Stored Queries。
我正在使用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();
我收到错误无效操作。我不确定我是否正确调用存储的查询,因为我能够调用没有任何参数且没有任何错误的存储查询。
答案 0 :(得分:0)
我能够解决这个问题。问题出在Northwind示例数据库中。然后我将Northwind数据库从SQL Server导入MS Access,并在MS Access中创建存储的查询。以下是我与企业库DAAB团队的详细讨论:entlib.codeplex.com/Thread/View.aspx?ThreadId=223653希望它有所帮助。 Access不关心@字符,您可以使用@字符调用或不调用@字符。