一個Query Builder,徵集更好用的Query Builder的設計方案

來源:互聯網
上載者:User

 

        用C# 2.0做了一個Query Builder(一些系統把它叫做“萬能查詢”):

        “添加”按鈕添加一個運算式或一個運算式邏輯運算子AND或OR;
        “清除”按鈕清除所有的運算式和運算式間的邏輯運算子;
        “確定”按鈕獲得構造的WHERE clause。

        特點:
                1、    運算子是由所選擇欄位的欄位來確定的,如欄位為字元時,可能支援的運算子包括:大於、等於、小於、前包括、後包括、包括、不包括、小於等於、大於等於、不等於、介於之間、在列表中
                2、    欄位取值由所選欄位和所選運算子共同決定的,如日期時間類型的欄位取值用DateTimePicker來輸入,和其他表關聯的欄位取值使用下拉式清單方塊來輸入
                3、    可以增加或減少每個表達前面或後面的括弧的數目來形成複雜查詢,並自動判斷括弧數目是否正確

        作用:
                設定表單或DataGridView資料的過濾條件;選擇資料進行批次更新

        這個東東實現了Query Builder的準系統,但是自己總是覺得不太滿意:使用者會認為這樣設計的查詢條件構造工具方便嗎?

        先來看看一個供銷存系統的所謂“萬能查詢”:

        這個Super Filter也能完成基本的功能,但是操作起來不方便,功能也不完全,但是以前見過的“萬能查詢”基本上都是這個樣子的。

        再來看看Access的查詢設計工具:

 

        微軟所有產品的查詢設計工具都與此相類似,顯然這是一個給程式員或具有資料庫知識的人使用的工具:要求使用者自己輸入條件(運算子和值),雖然條件有“或”選項,但是能構造的查詢條件還是有限的。倒是欄位的選擇做的比下拉式清單來得方便多了。另外,它允許多表之間的串連,但這對終端使用者來說是不現實的——他們不可能瞭解資料庫的結構。

         如果按照程式員的思路來的話,Query Builder可以做得更強大,實現的功能也會更多;如果按照終端使用者的思路來的話,應該越簡單越好,能夠快速掌握,符合使用者的習慣。如何在這兩者之間權衡,是很麻煩的事情。在此虛心向各位請教,徵集更好的、適合終端使用者使用的Query Builder設計方案!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.