小编ihi*_*lVT的帖子

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

我有一个由传统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
Run Code Online (Sandbox Code Playgroud)

我得到一个投射错误......

System.Exception未处理
Message = System.InvalidCastException:无法将类型为"System .__ ComObject"的COM对象强制转换为类类型"ADODB.InternalParameter".表示COM组件的类型实例不能转换为不代表COM组件的类型; 但是只要底层的COM组件支持对接口的IID的QueryInterface调用,它们就可以转换为接口.

在线:

.Parameters.Append(.CreateParameter("@book", DataTypeEnum.adChar, ParameterDirectionEnum.adParamInput, 50, MyBook))
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

存储过程:

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 …
Run Code Online (Sandbox Code Playgroud)

.net assemblies adodb consumption asp-classic

3
推荐指数
1
解决办法
3013
查看次数

标签 统计

.net ×1

adodb ×1

asp-classic ×1

assemblies ×1

consumption ×1