皆さんこんにちはr.matsumotoです。
今回はVB.NETのSqlParameterクラスについて書いていこうと思います。
SqlParameterとは
SqlParameterとは名前の通りSQLに埋め込んで使うことが出来る変数のような物です。
それだけならSQLを発行する時に直接変数を埋め込んでも同じなのではないかと思われる方も居るかもしれません。
実際私も初めは直接変数を埋め込むのと何が違うのか分かりませんでした。
ではSQLパラメータを使うことのメリットにはどの様な事があるかというと、まず一つはSQLのパフォーマンスが良いところです。
SQLパラメータを用いると複数回同じSQLを実行する場合、実行計画を再利用してくれて処理速度が速くなりパフォーマンスも上がります。
そしてその他にもSQLインジェクション対策になったりシングルクォートを付ける手間を省けたり色々なメリットがあります。
SqlParameterの使い方
では実際の使い方なのですが、実行したいSQLに@パラメータ名を埋め込みそのパラメータに値を渡して使用します。
1 2 3 4 5 6 7 |
Dim sqlStr As String = "SELECT * FROM emp WHERE name = @name" Dim command As SqlCommand = New SqlCommand(sqlStr, sqlConnect) Dim param As New SqlParameter("@name", SqlDbType.VarChar) param.Value = "matsumoto" command.Parameters.Add(param) |
今回は簡単な例として値を直接渡しましたが、実用的な使い方としてはユーザーから入力された値をSqlParameterにセットして使用したりでしょうか。
VB.NETでユーザー入力の値をそのまま使えたらなと思っている方は是非試してみてはいかがでしょうか。