データベースからデータを利用する場合、いつも同じSQLステートメントを使えるわけではありません。状況によってユーザーが検索キーワードを入力し、それを元に抽出することもあります。その際、動的に条件を与える方法を利用することができます。それが、パラメータです。
パラメータを利用するにはSQLステートメントの条件の部分で、「@パラメータ名」を割り当てておきます。
例:
SELECT * FROM M_ユーザー WHERE ユーザーID=@user
「@パラメータ名」に動的に値を入れて、そのときに応じたデータを抽出することができます。CommandクラスにはParametersコレクションがあります。そこには、Parameterオブジェクトが設定されます。作成される際にパラメータ名を指定してParametersコレクションにパラメータの値を追加していきます。
○ プロジェクト
プロジェクトの種類 | Windows フォーム アプリケーション |
---|---|
プロジェクト名 | ParameterTest |
○ フォームデザイン
次の図のようにコントロールを配置してください。
○ プログラム
「表示」ボタンをクリックしたときのイベントプロシージャの記述をしてください。
Form1.vb
○ 実行結果
SQLステートメントの中に「@パラメータ名」のパラメータを指定しておきます。そして、@userというパラメータのオブジェクトを生成して、それをCommandオブジェクトのParametersコレクションに追加しました。あとは、そのコマンドを実行すればよいわけです。
参考
パラメータを設定する際に、サンプルのプログラムは.NET Framework1.xと互換性を保つために用意されているメソッドを指定しました。そのため、警告が表示されました。 .NET Framework2.0での記述は、以下のようになります。
cmd.Parameters.Add(“ID”,Oledb.OledbType.VarChar, 5).Value = me.TextBox1.Text