程序中使用SQL字串IN的参数化设定
时间:2014-07-17 20:19 来源: 我爱IT技术网 作者:山风
写程式时在使用SQL字符串时,WHERE条件的参数,我们需要参数化,以防止SQL Injection发生,ADO.Net 有提供相关参数化设定,但是当我们遇到使用IN子句时,要如何使用参数化?
今天我们来一起解决下这个问题,参考如下程序代码:
- Dim parameString As String = "123,456,789"
- Dim parameArray() As String
- Dim temp As String
- comm.CommandText = "SELECT * FROM TEST WHERE ID IN (@ID)"
- parameArray = parameString.Split(",")
- For i = 0 To parameArray.Length - 1
- temp &= String.Format("@ID{0},", i)
- Next
- comm.CommandText = comm.CommandText.Replace("@ID", temp.Substring(0, temp.Length - 1))
- For j = 0 To parameArray.Length - 1
- comm.Parameters.Add(String.Format("@ID{0}", j), SqlDbType.VarChar).Value = parameArray(j)
- Next
- comm.ExecuteReader()
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
