拉一個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(); }
上面的代碼無需解釋,想必都看的懂。
最后,將綁定方法加載到Page_Load()以及查詢按鈕的Click事件中,大致的功能就是這樣。。。
也許有更多的辦法實現,這只是我的一家之言,僅供參考!!!