トップ回答者
SQLコマンド内での変数の使用

質問
回答
-
>といった形で利用したい、ということです
バインド変数を利用する方法をお勧めしますが、ご要望のものであれば単純に文字列結合でいいと思います。
' 数値などの場合 Dim sample1 As Integer = 0 Dim sql1 As String = "SELECT a FROM b WHERE c =" + sample1.ToString() ' 文字列の場合 Dim sample2 As String = "d" Dim sql2 As String = "SELECT a FROM b WHERE c ='" + sample2 + "'"
- 回答としてマーク 山本春海 2010年10月18日 7:35
-
> バインド変数を利用する方法をお勧めしますが、ご要望のものであれば単純に文字列結合でいいと思います。
文字列結合は確かに簡単なのですが、SQLインジェクションの抜け道になる恐れがあるので、初心者からでも以下のようにパラメタライズドクエリを使う習慣を身に着けるよう、強くお勧めいたします。
Public Sub Test() Public sample As String = "hogehoge" Dim cn = New SqlConnection(接続文字列) Dim command As New SqlCommand("SELECT a FROM b WHERE c = @sample", cn) command.Parameters.AddWithValue("@sample", sample) Dim da As New SqlDataAdapter(command) Dim dt As New DataTable() da.Fill(dt) End Sub
SQLインジェクションに関しては以下の記事を参考にしてください。
ひらぽん http://d.hatena.ne.jp/hilapon/- 回答としてマーク 山本春海 2010年10月18日 7:35
すべての返信
-
>VBのプログラム上で定義した変数(Dim Private Public等)を使用したい
説明が漠然としているので憶測ですが、バインド変数で解決できるのではないでしょうか。
バインド変数とは
http://e-words.jp/w/E38390E382A4E383B3E38389E5A489E695B0.html
バインド変数を利用したサンプル
-
>といった形で利用したい、ということです
バインド変数を利用する方法をお勧めしますが、ご要望のものであれば単純に文字列結合でいいと思います。
' 数値などの場合 Dim sample1 As Integer = 0 Dim sql1 As String = "SELECT a FROM b WHERE c =" + sample1.ToString() ' 文字列の場合 Dim sample2 As String = "d" Dim sql2 As String = "SELECT a FROM b WHERE c ='" + sample2 + "'"
- 回答としてマーク 山本春海 2010年10月18日 7:35
-
> バインド変数を利用する方法をお勧めしますが、ご要望のものであれば単純に文字列結合でいいと思います。
文字列結合は確かに簡単なのですが、SQLインジェクションの抜け道になる恐れがあるので、初心者からでも以下のようにパラメタライズドクエリを使う習慣を身に着けるよう、強くお勧めいたします。
Public Sub Test() Public sample As String = "hogehoge" Dim cn = New SqlConnection(接続文字列) Dim command As New SqlCommand("SELECT a FROM b WHERE c = @sample", cn) command.Parameters.AddWithValue("@sample", sample) Dim da As New SqlDataAdapter(command) Dim dt As New DataTable() da.Fill(dt) End Sub
SQLインジェクションに関しては以下の記事を参考にしてください。
ひらぽん http://d.hatena.ne.jp/hilapon/- 回答としてマーク 山本春海 2010年10月18日 7:35