- PR -

ストプロでのパラメータセットの方法について・・・

1
投稿者投稿内容
たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-03-05 17:30
はじめまして。初投稿です。
VB.NETを使用しての開発なのですが、データを取得するストアドプロシジャー
へのパラメータセットの使い方で困惑しています。

とても初歩的なんだと思いますが、どなたかご教授ください。

パラメータで渡した条件のデータをDataGridに表示したいのですが、SQLステートメントで
作成した場合は上手く出来るのですが、同様の処理をストアドにて行おうとしますと
駄目みたいなんです。

SqlSelectCommand2.Parameters("@chk_flg").Value = 1
SqlSelectCommand2.Parameters("@grp_kbn").Value = 0

と、パラメータセット部には記述していますが、他に何か必要なのでしょうか?

ちなみに、SqlDataAdapterとdatasetの部分は自動生成が出来るウィザードを
使って作成してあります。

よろしくお願いします。。。
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2003-03-06 00:08
どう駄目なのか書かれた方が返答しやすいと思いますよ
私は以下の方法でストアドからFillできています。
参考にしてください。

コード:
Public Overloads Function FillData(ByVal cmdText As String, ByVal paramName() As String, _
                    ByVal paramValue() As Object, ByVal data As DataTable) As DataTable
            With _dataAdapter
                Try
                    .SelectCommand = _selectCommand
                    With .SelectCommand
                        .Connection = _connection
                        .CommandType = CommandType.StoredProcedure
                        .CommandText = cmdText
                        .Parameters.Clear()
                        Dim i As Integer
                        For i = 0 To paramName.Length - 1
                            .Parameters.Add(paramName(i), paramValue(i))
                        Next
                    End With
                    .Fill(data)
                Catch e As Exception
                    Throw e
                End Try
            End With

            Return (data)
        End Function

たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-03-06 11:37
Togさん、ご返答ありがとうございます。
そうですね、もう少し詳しく書けばよかったです。

Togさんの参考コードもそうなんですが私が調べた文献もすべてソースコードで
dataAdapterやSelectCommandを一からコード記述してるのばかりでした。

初めっからそうしていれば良かったんですが、これらのDBアクセスの部分を
私はツールボックス内のデータ登録ウィザードで作成しました。
これだと簡単だと思っていたんですけど・・・
実際にパラメータの受け渡しの部分の記述はソースコードで書かなければいけないのは
分かるんですけど、その書き方をSQLで書くようにセットしてもストアドの方に
実際に値が受け渡ってないように思うのです。

単体でのストアドをデバックにて引数をセットしてあげれば、結果は上手く出ますので
ストアド自体が問題だとは思えないのです。

やはり自動生成されるコードに頼らず、一つ一つ書いてく方が良いのでしょうか?

記述して頂いたコードを参考に試してみたいとおもいます。
1

スキルアップ/キャリアアップ(JOB@IT)