原本為
Adodc1.RecordSource = "select * from EPSTC where TA002 like '%" & Text2.Text & "%'"
改為
Adodc1.RecordSource = "select * from EPSTC where '" & Text2.Text & "'<= TC002 <= '" & Text2.Text & "'"
Adodc1.Refresh
會出現
接近'<'之處的語法不正確
請問該如何修改
isaepfkeyr提到:
"select * from EPSTC where '" & Text2.Text & "'<= TC002 <= '" & Text2.Text & "'"
題目中的 SQL 敍述
假設 Text2.Text = "P123" 的話
那麼
SQL 敍述是
select * from EPSTC where 'P123'<= TC002 <= 'P123'
而這段 SQL 敍述
你貼到 SQL Analyer 去執行
就算不出錯
也挑不到任何資料
SQL 錯誤的問題的解法之一
就是「先寫出正確的 SQL 語法,再貼進程式碼當中使用」
我後來改成
Adodc1.RecordSource = "select * from EPSTC where TC002 >= 'Text2.Text'and TC002 <= 'Text3.Text'
是不會出現錯誤了 但是沒任何資料若只有
Adodc1.RecordSource = "select * from EPSTC where TC002 >= 'Text2.Text'"
就又很正常
isaepfkeyr提到:
select * from EPSTC where TC002 >= 'Text2.Text'
要注意一點
Text2.Text 是變數,不是真正要拿來比較的值
我猜可能是
<pre class="c" name="code">
Adodc1.RecordSource = "select * from EPSTC where TC002 >= '" & Text2.Text & "'and TC002 <= '" & Text3.Text &"'"
這種寫法不怕SQL inject攻擊嗎?
TC002 是您的欄位名稱吧?
Adodc1.RecordSource = "select * from EPSTC where TC002 >= '" & Text2.Text & "'and TC002 <= '" & Text3.Text & "'"
現在是學習階段,就算了!
未來,您還是需要去了解一下 SQL inject的問題。