載入資料庫表全部資料到GridView控制項,但通過查詢條件在GridView顯示一行或幾行資料

來源:互聯網
上載者:User

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

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.