2017-07-21、2023-01-17
Default.aspx 中 T-SQL
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Danger112Product] WHERE ( ([ProductFullNameCht]=@TextBoxQuery OR [ProductKeyNameCht] like N'%' + @TextBoxQuery + '%' OR [ProductFullNameEn]=@TextBoxQuery OR [ProductKeyNameEn] like N'%' + @TextBoxQuery + '%') AND @TextBoxQuery<>'')" > <SelectParameters> <asp:ControlParameter ControlID="TextBox_Query" Name="TextBoxQuery" PropertyName="Text" Type="String" /> </SelectParameters> </asp:SqlDataSource> |
組字串之 SQL 敘述有 like 關鍵字時
SqlDataSource1.SelectCommand = SqlDataSource1.SelectCommand + @" AND [KeyWord] like N'%" + TextBox_KeyWord.Text.Trim() + "%'"; |
改寫為參數化查詢 (Parameterized SQL) 之寫法
SqlDataSource1.SelectCommand = SqlDataSource1.SelectCommand + @" AND [KeyWord] like N'%' + @KeyWord +'%' "; SqlDataSource1.SelectParameters.Clear(); SqlDataSource1.SelectParameters.Add("KeyWord", TypeCode.String, TextBox_KeyWord.Text.Trim()); |
其中這句
SqlDataSource1.SelectParameters.Add("KeyWord", TypeCode.String, TextBox_KeyWord.Text.Trim()); |
可改寫為
SqlDataSource_Jiguan.SelectParameters.Add("KeyWord", System.Data.DbType.String, TextBox_KeyWord.Text.Trim()); |
或 (字串可以省略型態指定)
SqlDataSource_Jiguan.SelectParameters.Add("KeyWord", TextBox_KeyWord.Text.Trim()); |
(完)
沒有留言:
張貼留言