在 VB.NET 中使用 OleDb.NET 调用 Access 2010 存储选择查询的异常

Posted

技术标签:

【中文标题】在 VB.NET 中使用 OleDb.NET 调用 Access 2010 存储选择查询的异常【英文标题】:Exception calling Access 2010 stored select query using OleDb.NET in VB.NET 【发布时间】:2013-07-18 12:30:12 【问题描述】:

我在 Access 2010 数据库中使用一个参数创建并保存了一个命名查询。但是我似乎无法通过 VB.NET OleDb 使用它。

这是我正在使用的代码(忽略连接,它设置正确 - 它使用非存储过程工作)

Dim Command As New OleDb.OleDbCommand
Dim Reader As OleDb.OleDbDataReader
Command.CommandText = "SelectUser"
Command.Parameters.AddWithValue("@UserId", "1234131")
Command.CommandType = CommandType.StoredProcedure
Reader = Command.ExecuteReader

这是Access 2010中存储过程的代码:

SELECT Users.*
FROM Users
WHERE Users.User_Id=[@UserId];

执行 .NET 代码时,出现以下异常: Microsoft Access 数据库引擎找不到输入表或查询“SelectUser”。确保它存在并且其名称拼写正确。

我做错了什么,对我来说这毫无意义。

【问题讨论】:

您没有发布它,但请确保您的 Command 对象实际上正在使用您的 Connection 对象。 @LarsTech:正如我所说,它非常适合非存储查询,所以连接很好。 您确定要连接到具有存储过程的数据库吗?您可能无意中将存储过程添加到了错误的数据库中。 【参考方案1】:

连接到错误的数据库副本,一个不包含查询的副本。

【讨论】:

以上是关于在 VB.NET 中使用 OleDb.NET 调用 Access 2010 存储选择查询的异常的主要内容,如果未能解决你的问题,请参考以下文章

COM 方法调用在 C#、VB.NET 中失败,但在 Python 中有效

如何用vb.net 调用VBS文件?

使用 VB NET 在访问外部调用访问函数

检查函数调用中哪个数字更大--vb.net

vb.net如何动态调用WebService接口啊

在vb.net中使用Iphlpapi.dll获取网络信息