加載數據庫表全部數據到GridView控件,但通過查詢條件在GridView顯示一行或幾行數據


拉一個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事件中,大致的功能就是這樣。。。

也許有更多的辦法實現,這只是我的一家之言,僅供參考!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM