- - PR -
ストアドプロシージャについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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**の接続文字列を入れてパラメータに代入などのあるストアドプロシージャと同様に使うにはどのようにしたらよろしいのでしょうか |
|
投稿日時: 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-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