多條件查詢

2021-09-20 02:47:22 字數 1660 閱讀 5435

開發工具與關鍵技術:vs    c#
當使用者需要通過一定的條件進行範圍查詢的時候,在控制器中,就需要判斷使用者傳來的條件,一般使用者條件查詢會有下拉框,文字框等from表單元件(預設下拉框內的資料已繫結,本文暫不進行時間的範圍查詢),通過獲取這些元件的值,可以方便快捷的採集使用者的資訊

一、查詢

創鍵多條件查詢的方法,接收所有元件的值,由於使用了layui的分頁功能,所以需要引入用於分頁的工具類

本文查詢的資料是成績,由於乙個學生可能存在多個成績,所以需要先將最優成績獲取到。通過group關鍵字將資料分組,最後在獲取欄位時將最優成績獲取到即可。獲取最優成績的原因:同一次考試同一人可以多次測試,而排序只要一條資料即最優成績用於排序

之後再將需要查詢的表進行連線,由於連表查詢的**太長就不擷取連表查詢的全部而是採用文字描述與少量交錯的方式

首先將一張表賦值給一範圍變數,然後將需要連線的表通過共同的鍵(主外來鍵皆可)進行連線,重複此步驟,將所有表進行連線

由於涉及到的字段過多查詢時宣告任何一張表也無法接收所有字段,而匿名查詢的資料型別無法轉換,所以需要乙個可以接收所有需要的字段的類,在建立類的字段時,為了減少工作量,可以用繼承,給建立的類繼承乙個所需字段最多的表,可以少些很多字段

二、判斷

將頁面獲取的引數進行判斷,int型別的資料,等於零即表示為空,故判斷是否大於零即可,應為下拉框的顯示與option的value有關,所以通過將option的value值賦值為需要顯示的資料的儲存的表的主鍵id值,即可使下拉框選定時返回資料對應**的主鍵id

除了下拉框,還有可能出現文字框即string字串的格式的資料,

字串判斷是否為空的方式與int型別的資料稍微不同,字串資料為空通過關鍵字判斷,然後取反,即不為空

where篩選也與int型別的資料略有不同,判斷時不是判斷是否相等,而是判斷查詢的資料是否包含需要查詢的內容。頁面穿入的資料可能包含空格,導致匹配失敗,所以使用去空格來防止這個意外情況的發生

三、返回

為了使返回的資料可以被layui的**所接收,所以需要對數進行處理

獲取查詢到的資料條數,用於返回到頁面作為查詢到的資料總條數顯示

對資料進行分頁處理,通過關鍵字orderbydescending對資料進行降序,使用id排序,skip用於當頁面分頁到第幾頁時需要跳過的資料的條數,take的作用是用於確定當前頁面的資料條數

tolist:為了保持資料型別的一致性

使用可以被layui讀取的資料型別的工具類接收數,接收資料可以在建立變數時直接賦值,也可以建立完成後再進行賦值

最後將賦值完成的工具類返回給頁面即可。

總結:查詢時需要將乙個使用者的多條資料整合成乙個陣列,獲取需要的一條即可(前提是只要一條)

連表查詢需要乙個至少包含所有需要查詢的字段的字串,可以多,不能少

字串與整形的判斷有所不同,複製貼上請注意

獲取的資料直接返回無法被外掛程式讀取,記得將格式調整好

****於老師

多條件查詢

思路 1.獲取引數值 2.生成查詢條件 3.獲取查詢結果 4.繫結查詢選項 呼叫geturlhtml方法生成查詢url 例如 var y2013 pnvshihufu qbeijing sxuhuiqu 得到url變數值 protected string geturlval string name ...

多條件查詢

多條件查詢時在做專案的時候不可缺少的功能,雖然很簡單,但是自己還是記一下,對自己有用 查詢事件 private void button查詢 click object sender,eventargs e initial catalog uid pwd this.dataserver,this.dat...

多條件查詢

例如根據編碼篩選資料,根據顏色,款號,尺碼,商品名稱篩選等等。首先把需要條件傳到查詢方法。商品多條件查詢 function setstate if string.isnullorempty query if usposition 2 if usposition 3 if usposition 4 i...