- - PR -
C#よりストアドの実行
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-28 18:02
はじめまして みんみんと申します。 C#よりSQL-SERVER2000のストアドを実行しようしてまして 実行したところ以下のエラーになります。 「型の名前が無効です。」 どこでエラーになっているのでしょうか? ***ストアド*** CREATE PROCEDURE dbo.ストアド名 @hi1 varchar(10) AS DECLARE @Ret int ---処理内容 RETURN 0 ERR_ROLLBACK: RAISERROR('エラー発生。ROLLBACKします',0,1) RETURN -1 GO ***C# *** dbCommand.CommandType = CommandType.StoredProcedure; dbCommand.CommandText = "dbo.ストアド名"; OleDbParameter dbParm = null; //引数1 dbParm = dbCommand.Parameters.Add("hi1", OleDbType.VarChar, 5); //戻り値 dbParm = dbCommand.Parameters.Add( "rtn", OleDbType.VarNumeric); dbParm.Direction = ParameterDirection.Output; //値のセット dbCommand.Parameters["hi1"].Value = "ABCDE"; dbCommand.ExecuteNonQuery(); if ( int.Parse( dbCommand.Parameters["rtn"].Value.ToString() ) != 1 ) throw( new Exception("データベースの作成に失敗しました。") ); よろしくお願いします。 | ||||
|
投稿日時: 2004-10-28 19:33
戻り値の設定を行ってるところで、戻り値の型の指定が間違っているようです。 "OleDbType.VarNumeric"→"OleDbType.Integer" あと同じく戻り値のDirectionの設定ですが、戻り値なら"ParameterDirection.Out"ではなく "ParameterDirection.ReturnValue"です。 最後にパラメータの追加は戻り値を最初に行ってその後に引数1...とした方が良いと思います。 | ||||
|
投稿日時: 2004-10-28 20:33
みんみんです。
お返事ありがとうございます。 ストアド内でまだエラーになりましたが この件は無事直りました。 ありがとうございました。 |
1