拉一個GridView控制項在前台設計,設定其所需要的全部屬性。而後操作資料庫,串連,寫查詢資料庫表資料語句,綁定資料,顯示資料,這些都是已經司空見慣的步驟了,可以說沒什麼可說的。這些東西,只要是學過開發的,我想沒有不會的。今天我所講的是,不僅在GridView控制項裡載入全部資料,一旦有了查詢條件,查詢出來的資料還顯示在這個GridView中。意思就是下面的這兩張圖片:
這張圖片就是載入資料庫表資料,顯示所有的資料。一旦資料量大了,我們不好翻閱,就有了查詢功能。其實,所謂的查詢功能不過是查詢語句的where條件,沒有查詢條件的時候不載入where條件,有查詢條件的時候就以查詢條件查詢出來的資料顯示。如:
大致意思,就如上述,一個GridView控制項顯示資料,一個查詢條件輸入框以及觸發查詢條件的按鈕。有必要在這裡說一下,請看到第一個圖中的TextBox輸入框,框體裡有一個提示文本“按裝置名稱查詢...”,有兩點提示:
1)、當滑鼠沒有放在框體上時,框體有顯示“按裝置名稱查詢...”的文本字樣,如果要輸入查詢條件的時候,框體裡面的那個文本就會消失,再移開滑鼠時又會顯示其文本。實現這一功能要在cs後台代碼Page_Load()方法中載入兩句代碼,
this.txtSelect.Attributes.Add("onfocus", "if (this.value=='按裝置名稱查詢...') this.value=''");
this.txtSelect.Attributes.Add("onblur", "if (this.value=='') this.value='按裝置名稱查詢...'");
2)、在輸入查詢條件的時候,要判斷框體內的值,所以一定得考慮它本身固有的文本'按裝置名稱查詢...',就是下面的這個if判斷代碼,後面會有詳細提及。
if (this.txtSelect.Text.Trim() != "" && this.txtSelect.Text != "按裝置名稱查詢...")
前台介面的設計就不在詳加介紹,主要說說後台代碼的實現。。。
首先,就是寫資料庫協助類,連結資料庫,操作資料庫方法,如果您需要請到下面的連結下載(訪問密碼是:be3e)
http://yunpan.cn/QePezBE6VC5sF
其次,我用到是StringBuilder這個可變的字串,用它來分割查詢語句,(需要添加引用:using System.Text;)。查詢資料,返回dataset資料緩衝。
/// <summary> /// 在GridView中綁定裝置資訊表的資料(傳參數) /// </summary> public DataSet GetList(string strWhere) { DataSet dset = null;//操作資料庫結果 string sql = "";//SQL語句 try { //開啟資料庫 helper.Connect(); StringBuilder strSql = new StringBuilder(); //查詢xxt_registration表記錄 sql = "select r.id,r.name,d.name tname,r.ip,r.port,r.time,r.location,r.installtime,d.misc from xxt_registration r full outer join xxt_devicetype d on r.type=d.id "; strSql.Append(sql); if (strWhere.Trim() != "") { strSql.Append(" where " + strWhere); } // 執行查詢命令 dset = helper.Query(strSql.ToString()); } catch (Exception E) { E.Message.ToString(); } finally { //關閉資料庫 helper.Close_Up(); } return dset; }
緊接著寫一個綁定的方法,用於判斷是否需要查詢條件的使用。
/// <summary> /// 在GridView中綁定xxt_registration表的資料 /// </summary> public void BindData_Registration() { DataSet dset; StringBuilder strWhere = new StringBuilder(); if (this.txtSelect.Text.Trim() != "" && this.txtSelect.Text != "按裝置名稱查詢...") { strWhere.AppendFormat("r.name like '{0}'", this.txtSelect.Text.Trim()); } dset = GetList(strWhere.ToString()); GridView.DataSource = dset; GridView.DataBind(); }
上面的代碼無需解釋,想必都看的懂。
最後,將Binder 方法載入到Page_Load()以及查詢按鈕的Click事件中,大致的功能就是這樣。。。
也許有更多的辦法實現,這隻是我的一家之言,僅供參考!!!