[摘 要] 本文在介紹多條件查詢和ASP .NET原理的基礎上,通過一個具體的查詢實例,詳細介紹了在基于Web的第七采油廠員工家庭信息管理平臺中如何設計和實現基于ASP .NET的多條件查詢。
[關鍵詞] ASP.NET; 多條件查詢; 設計; 實現
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 03. 031
[中圖分類號] TP393 [文獻標識碼] A [文章編號] 1673 - 0194(2012)03- 0060- 01
1 前 言
在Web應用系統中,查詢是一種最常用最重要的功能,通過查詢可以將后臺數據庫存儲的數據通過動態網頁加以展現。一般來說,我們并不需要查找數據庫中某個表或某些表中的所有數據,我們通常只關心符合某個條件或某些條件的數據。多條件查詢正是在這背景下應運而生的。
2 多條件查詢的原理
所謂多條件查詢是指用戶根據已知的多條信息來查詢數據庫,從而縮小查詢范圍得到更精確更符合用戶需要的查詢結果。對于用戶來說,如果能夠將已知的信息組合起來作為查詢條件來對數據庫進行查詢,就可以提高查詢效率,改善查詢效果。例如在第七采油廠員工家庭信息管理平臺中,用戶想查找某單位年齡是30歲的未婚員工情況,只需輸入單位、年齡、婚姻狀況等條件點擊查詢按鈕即可。根據單位、年齡、婚姻狀況這3個屬性滿足的條件查詢數據庫,要比根據其中的一個屬性滿足的條件來查詢更為有效。
3 基于ASP.NET的多條件查詢的編程實現
3.1 ASP.NET的工作原理
首先,有一個HTTP請求發送到Web服務器要求執行一個Web網頁。Web服務器通過分析客戶的HTTP請求來定位所請求的網頁的位置。如果所請求的網頁的文件名的后綴是aspx,那么就把這個文件發送到aspnet_isapi.dll進行處理,由aspnet_isapi.dll把ASP.NET代碼提交給CLR。如果以前沒有執行過這個程序,那么就由CLR編譯并執行,得到純HTML結果;如果已經執行過這個程序,那么就直接執行編譯好的程序并得到純HTML結果。最后把這些純HTML結果傳回瀏覽器作為HTTP響應。瀏覽器收到這個響應之后,就可以顯示Web網頁。
3.2 多條件查詢
當用戶進入查詢界面以后,可以根據自己的需要進行條件組合。
if(CheckBox1.Checked==true)
{sql=sql+"and a.departmentcode like'"+zhi1.SelectedValue.ToString()+"%'"; }else
{if(bmdm.Length==8)
{sql=sql+"and a.departmentcode like'"+bmdm+"%'";}
else if(bmdm.Length==12)
{if(zhi1.Items.Coun==1)
{sql=sql+"and a.departmentcode='"+bmdm+"'";}}}
當我們選擇完查詢條件,就可以對自己感興趣的項進行選擇。構建輸出項:
if(num<1)
{Ygxx.Common.MessageBox.Show(this,"請選擇輸出項");
return;}else
{for(int i=0;i<CheckBoxList1.Items.Count; i++)
{if(CheckBoxList1.Items[i].Selected)
{if(CheckBoxList1.Items[i].Text.ToString()=="出生日期"
{shuchu=shuchu+",to_char("+CheckBoxList1.Items[i].Value+",'"+"yyyy-mm-dd'"+") as"+CheckBoxList1.Items[i].Text.ToString();}else if (CheckBoxList1.Items[i].Text.ToString()=="家庭收入"
{shuchu=shuchu+","+CheckBoxList1.Items[i].Value+"as"+CheckBoxList1.Items[i].Text.ToString()+"萬元";}}}}
通過上述過程就可以根據自己組合的條件和選擇的輸出項得到想要的查詢結果。
3.3 動態的多條件查詢
(1) 增加條件按鈕事件。查詢條件可以根據需要增加任意多個,在增加一個新的查詢條件時,必須要求前一個條件已經填寫完成。函數的代碼如下:
protected void 增加條件tclick(object sender,ImageClickEventArgs e)
{if(this.Panel條件1.Visible==false){this.Panel條件1.Visible=true;}}
(2) 刪除條件按鈕事件。條件控件的刪除處理過程,首先要判斷是否有選中的控件,如果沒有,則返回;如果有,則進入刪除處理流程。函數代碼如下:
protected void刪除1_Click(object sender,ImageClickEventArgs e)
{this.Panel條件.Visible=false;}
通過以上動態的添加和刪除條件,我們就可以得到想要的結果。
4 結束語
隨著Internet/Intarnet及其應用技術的不斷發展,企業規模的不斷發展壯大,這種基于B/S模式的多條件查詢方式將會得到更廣泛的應用。本文對應用ASP.NET技術開發這種多條件查詢進行了一些初步的探討,我們也可以通過在嵌入的SQL程序中使用一些關鍵詞,從而實現更加靈活自由的多條件查詢。
主要參考文獻
[1] 羅漢洋. 基于 ASP 的 Web 數據庫的構建[J]. 北方工業大學學報,2003(3).
[2] 余波. 動態Web應用高級開發指南[M]. 北京:人民郵電出版社,1999.