[.NET] SQL查詢時利用變數當參數的問題
一直被這一個看似簡單的問題困擾了很久,
在利用SelectCommand時我把一個變數當作SQL where條件的參數,
程式碼如下:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim TaskID As String
Dim SeqID As String
Dim Seq As String
TaskID = Me.DropDownList1.SelectedValue
Dim sds2 As New System.Web.UI.WebControls.SqlDataSource
sds2.ConnectionString = "Data Source=SHANE;Initial Catalog=AS;Persist Security Info=True;User ID=sa;Password=5408"
sds2.SelectCommand = "select [順序編碼] from [Tasks] where 任務ID = '" & TaskID & "'"
Dim dv2 As Data.DataView = sds2.Select(New DataSourceSelectArguments)
Me.GridView2.DataSource = dv2
SeqID = dv2.Item(0).Item(0)
Response.Write(SeqID)
Dim sds As New System.Web.UI.WebControls.SqlDataSource
sds.ConnectionString = "Data Source=SHANE;Initial Catalog=AS;Persist Security Info=True;User ID=sa;Password=5408"
sds.SelectCommand = "select * from [Tasks]
where (順序編碼 like '%" & SeqID & "%')"
Dim dv As Data.DataView = sds.Select(New DataSourceSelectArguments)
Me.GridView1.DataSource = dv
Me.GridView1.DataBind()
End Sub
重點在 (順序編碼 like '%" & SeqID & "%')
雖然在SeqID連接兩個%字元,可是查詢的結果跟沒有連接%的結果一樣...
但若是先傳入一個固定值給SeqID,例如 SeqID=123 這樣的結果就會正確。
我想可能是SeqID & "%" 後中間會多一個空白字元(例如:123 %,而非123%)所造成的。
這個問題讓我這個程式新手想了蠻久的,也搜尋不到相關的資訊,
希望有人能指點一下,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.108.132
推
03/16 15:33, , 1F
03/16 15:33, 1F
推
03/16 15:41, , 2F
03/16 15:41, 2F
推
03/16 15:41, , 3F
03/16 15:41, 3F
推
03/16 15:52, , 4F
03/16 15:52, 4F
→
03/16 15:52, , 5F
03/16 15:52, 5F
→
03/16 15:55, , 6F
03/16 15:55, 6F
→
03/16 15:56, , 7F
03/16 15:56, 7F
推
03/16 16:03, , 8F
03/16 16:03, 8F
推
03/17 08:55, , 9F
03/17 08:55, 9F
推
03/17 08:55, , 10F
03/17 08:55, 10F
推
03/17 18:22, , 11F
03/17 18:22, 11F