SqlDataSource設計模式中SelectCommand使用If…Else條件
以下這段我覺得很實用,先搜集下來,此用法我沒試用,主要是在SQL使用IF判別式,
源自:http://tgw1029.blogspot.tw/search/label/Asp.Net
SqlDataSource設計模式中SelectCommand使用If…Else條件
一般來說我們都會將使用codebehind的方式來指定SqlDataSource的SelectCommand內容。
但在比較複雜的邏輯程式中不得已必須在設計模式中直接指定SelectCommand內容,
又需要對某控制項來取值作為SQL中的Where條件時,
我們可以使用T-SQL中的條件語法If…Else來實現。
T-SQL If…Else 架構:
If 條件式
Begin
T-SQL語法
End
Else
Begin
T-SQL語法
End
Begin End是用來設定T-SQL程式碼範圍,若你的T-SQL語法超過一行請務必記得加上Begin End,
否則你會發現就算寫了多行也只會執行第一行程式。
最好是養成不管一行多行程式都用Begin….End包起來的好習慣。
範例:
在SqlDataSource的SelectCommand對DropDownList控制項取值,
判斷DropDownList值是否為All來達成不同條件資料過濾。
DropDownList內容:
<asp:DropDownList ID="DropDownList" runat="server"
AppendDataBoundItems="True" DataSourceID="Sort_SqlDataSource"
DataTextField="分類項目" DataValueField="分類編號">
<asp:ListItem Value="All">請選擇</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="Sort_SqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:TestConnectionString %>"
SelectCommand="SELECT * FROM 分類"></asp:SqlDataSource>
SqlDataSource SelectCommand內容:
<asp:SqlDataSource ID="SqlDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:TestConnectionString %>"
SelectCommand="if (@分類項目='All') begin Select * From 測試 end else begin Select * From 測試 Where 分類項目=@分類項目 end">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList" Name="分類項目" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
--
強烈建議購物網店或實體店家都必須使用關鍵字廣告or原生廣告來 將Yahoo上與聯播網的廣大流量導至自己的網站!
●Yahoo關鍵字廣告/原生廣告
◆Yahoo廣告方案介紹 : https://goo.gl/5k8FHW
◆Yahoo廣告剖析與運用 : http://goo.gl/4xjUJD