在.NET程序集中向ADODB命令添加参数时为何总是出错,能否提供解决之道?

2026-03-30 12:551阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计365个文字,预计阅读时间需要2分钟。

在.NET程序集中向ADODB命令添加参数时为何总是出错,能否提供解决之道?

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

我有一个由传统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))

有任何想法吗?

存储过程:

在.NET程序集中向ADODB命令添加参数时为何总是出错,能否提供解决之道?

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帮助我缩小搜索范围.

本文共计365个文字,预计阅读时间需要2分钟。

在.NET程序集中向ADODB命令添加参数时为何总是出错,能否提供解决之道?

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

我有一个由传统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))

有任何想法吗?

存储过程:

在.NET程序集中向ADODB命令添加参数时为何总是出错,能否提供解决之道?

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帮助我缩小搜索范围.