gpt4 book ai didi

.net - 向 .NET 程序集中的 ADODB 命令添加参数时出错

转载 作者:行者123 更新时间:2023-12-02 15:48:14 24 4
gpt4 key购买 nike

我有一个由经典 ASP 页面使用的 .NET 程序集。我创建了一个返回 ADODB 记录集的方法。在我的 ADODB 命令对象中,我使用以下格式向 adCmdStoredProc CommandType 属性提供参数...

With ADODBCmd 
.ActiveConnection = ADODBConn
.Prepared = True
.CommandType = CommandTypeEnum.adCmdStoredProc
.NamedParameters = True
.CommandText = Sql_GetMyBook
.Parameters.Append(.CreateParameter("@book", DataTypeEnum.adChar, ParameterDirectionEnum.adParamInput, 50, MyBook))
End With

我遇到转换错误...

System.Exception was unhandled
Message=System.InvalidCastException: Unable to cast COM object of type 'System.__ComObject' to class type 'ADODB.InternalParameter'. Instances of types that represent COM components cannot be cast to types that do not represent COM components; however they can be cast to interfaces as long as the underlying COM component supports QueryInterface calls for the IID of the interface.

行:

.Parameters.Append(.CreateParameter("@book", DataTypeEnum.adChar, ParameterDirectionEnum.adParamInput, 50, MyBook))

有什么想法吗?

存储过程:

ALTER PROCEDURE [dbo].[GetMybook]
-- Add the parameters for the stored procedure here
@book char(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT BookTitle, Author, PulishedDate
FROM Library
WHERE BookTitle=@book

最佳答案

Microsoft ActiveX 数据对象库中“.CreateParameter”方法的返回值之间存在差异(有意或无意)

2.7 - 返回“ADODB.InternalParameter”(这是 ADODB.Command 对象所期望的)

2.8 - 返回“System.__ComObject”(ADODB.Command 无法处理或不知道如何处理)

出于我的目的,我必须将引用从 2.8 更改为 2.7 库,以便将创建的参数附加到命令对象。

感谢 Chris Behrens 帮助我缩小了解决方案的搜索范围。

关于.net - 向 .NET 程序集中的 ADODB 命令添加参数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com