投稿者 まる  (社会人) 投稿日時 2009/2/5 20:40:00
すみません。また投稿させていただきました。

今VB.NET(ver.2005)でADO.NETをやっています。
全然やったことがなかったのでほとんどわかりません・・・。

今自分が悩んでいるところは「ストアドプロシージャからの戻り値の取得」です。
一応プログラムを作成してみたのはいいものの、ストアドプロシージャの結果とVBの渡された値に違いがあって意味がわかりません・・・。

わかる方がいましたら、ご教授お願いいたします。

今の状態ですと、レコード数が「32」あるのに、VB.NETだと「6」と表示されます・・・。

ストアドプロシージャ
----------------------------------------------
ALTER PROCEDURE dbo.SpMsTokuisakiCount
/*
(
@count int output
)
*/
AS
SET NOCOUNT ON

declare @count int

select count (*) from MSTokuisaki
 
RETURN @count
---------------------------------------------

VB.NET
---------------------------------------------
    Public Function test() As Decimal

        Dim cn As SqlClient.SqlConnection

        Dim max As New SqlClient.SqlParameter

        'SQLに対してコマンドを入れるための変数
        Dim command As New SqlClient.SqlCommand

        'コネクションの指定
        command.Connection = cn

        'コマンドの種類をストアドプロシージャに
        command.CommandType = CommandType.StoredProcedure

        '実行するストアドプロシージャの名前を指定
        command.CommandText = "SpMsTokuisakiCount"

        command.Parameters.Clear()

        command.Parameters.Add("RETURN_VALUE", SqlDbType.Decimal)

        max.Direction = ParameterDirection.ReturnValue

        Return max.Direction

    End Function
---------------------------------------------