人人IT網

人人IT網

當前位置: 主頁 > 編程語言 > ASP >

實現一個搜索功能思路

時間:2013-04-06 12:02來源:Internet 作者:Internet 點擊:
搜索介面如下:程序中需要實現如上的一個搜索功能。[Option]有兩個選項,說明結果需要一個Detail或Summary。這是二選一,而且必選一個。[By]選擇是讓用戶填入用戶信息,或是選擇部門。 當

搜索介面如下:


程序中需要實現如上的一個搜索功能。
[Option]有兩個選項,說明結果需要一個Detail或Summary。這是二選一,而且必選一個。
[By]選擇是讓用戶填入用戶信息,或是選擇部門。 當用戶選擇用戶選擇,在下出現文本框,讓用戶填入用戶名;當用戶選擇部門時,在下出現下拉列表,讓用戶選擇部門。


[DateTime]選擇,也有兩種情況選擇,一個是選擇年月份的,默認是當前年份,用戶選擇年份之後,選擇月份;  另一個選擇日期,當選擇日期選項,在下出現兩個文本框,可輸入開始與結束日期的,也可以選擇。


分析,總共6個選擇,2種結果,4個條件(用戶,部門,日期或月份),因此將有8個参數,這個8個参數为:@Option; @By; @ByValue; @Dt; @FDate; @EDate; @YValue; @MValue
這些参數與参數值一次性傳入存儲過程中。在存儲過程中處理這些條件邏輯。

为做好這個搜索與顯示,Insus.NET决定在前台放置一個GridView,顯示結果。

 <asp:GridView ID="GridViewResult" runat="server" Width="100%" CellPadding="3" CellSpacing="0" BorderWidth="1" BorderColor="#c0c0c0" HeaderStyle-Height="25px" RowStyle-Height="25px" HeaderStyle-BackColor="#efebde"></asp:GridView>


這样可以動態裝載各種样式的表格。

 

ok,重點在存儲過程,完成所有條件,需要寫好幾個存儲過程,首先是入口存儲過程:

上面入口的存儲過程,需要判斷用戶選擇的By選擇,如果是選擇了'User',那就執行[dbo].[usp_PrintLog_SearchByUser],如果是選擇了'Department',存儲過程將執行[dbo].[usp_PrintLog_SearchByDept]。在不管是1還是2的子存儲過程,已經少帶了@By這個参數了。

下面我們分別來看這兩個存儲過程,先看第一個子存過程,需要處理@Option参數。



第二個子存儲過程,需要處理@Option参數。


其中1,2,3,4存儲過程,大約如下:


這样子,不管用戶作出怎样的選擇,均只返回一種結果,不必在程序中去做任何判斷,以及與數據庫多次交互。

 


From:CNBLOGS
頂一下
(0)
0%
踩一下
(0)
0%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
欄目列表
推薦內容