従来のASPページで使用されている.NETアセンブリがあります。私はADODBレコードセットを返すメソッドを作成しました。私のADODBコマンドオブジェクトでは、私がadCmdStoredProc CommandTypeプロパティに次の形式を使用してパラメータを供給しています....NETアセンブリのADODBコマンドにパラメータを追加するときのエラー
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は
未処理でしたメッセージ= System.InvalidCastException: タイプ 'System .__ ComObject'のCOMオブジェクトをクラスタイプ 'ADODB.InternalParameter'にキャストできません。 COMコンポーネントを表す型の がCOMコンポーネントを表していない型にキャストできません。しかし は、 の下位COMコンポーネントがサポートされている限り、インターフェイスにキャストできます QueryInterfaceはのIIDを呼び出します。ラインで
:
.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 [email protected]
MyBookは実際には文字列で、おそらくもっと明確になっているはずです。 – ihillVT
代わりに型enumをadVarCharに変更してみてください。 –
adVarCharを変更すると、同じエラーが発生しました。 – ihillVT