- PR -

ストアドプロシージャについて

1
投稿者投稿内容
武装キョンシー
ベテラン
会議室デビュー日: 2006/04/07
投稿数: 57
投稿日時: 2006-04-18 13:14
ASP.NETでVBを使用しWEBアプリを開発しています。
DBはSQL Server2005を使用。
勉強途中ですが、DBのストアドプロシージャを使い
CREATE PROCEDURE ログインチェック
@p1 char(20)
@p2 char(20)
select @p1=ID FROM ユーザ管理
のように作成し

ASP側でDim cmd as new Sqlcommand("ログインチェック",cn)

cmd.commandtype=commandtype.storedprocedure
として簡単に使えることがわかりました。
ふと疑問に思ったのですがストアドプロシージャはDBに直接作成しそれをオブジェクトのようにASP側で使えるようにしているのではと思ったので
Dim cmd as new Sqlcommand("ログインチェック",cn)のログインチェックを直接
SELECT**の接続文字列を入れてパラメータに代入などのあるストアドプロシージャと同様に使うにはどのようにしたらよろしいのでしょうか
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2006-04-18 14:37
ストアドプロシージャではないSQL文を直接指定したい、ということでいいんですかね?
この場合、SqlCommandのコンストラクタの第一引数にSQL文を直接書けばOKです。
それと、CommandTypeの指定をする必要はありません。

パラメータ付きのSQL文を使うときにはパラメータを追加してやる必要があります。
http://msdn2.microsoft.com/ja-JP/library/system.data.sqlclient.sqlcommand.parameters(VS.80).aspx
このあたりが参考になるかな。
武装キョンシー
ベテラン
会議室デビュー日: 2006/04/07
投稿数: 57
投稿日時: 2006-04-18 15:48
アドバイスありがとうございます。
Dim Mycmd As New SqlCommand("SELECT ID=@p1 FROM テーブル WHERE ID AND パスワード=@p2 IF @@ROWCOUNT < 1 THEN BIGIN SELECT ユーザID=""", Mycn)
Dim p1 As SqlParameter = Mycmd.Parameters.Add("@p1", SqlDbType.Char, 20)

ストアドプロシージャなしとパラメータの追加は以上で問題ないでしょうか?
現在、テーブルにはIDとパスワードの2列しかありませんが、ログイン画面のユーザとパスワードチェックをする場合、出力パラメータも必要なのでしょうか?(項番列を用意して3
つのパラメータにする)
1

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