C#DataGridView分頁顯示代碼詳解

//導入命名空間部分省略

        string connectionString = @"Data Source=ServerName;Database=DatabaseName;integrated security=true";

        #region 初始化分頁顯示的參數   
        static int rowsall = 0;//總行數     
        static int pageall = 0;//總頁數
        static int page = 0;//第幾頁
        static int count = 20;//返回20行
        static int start = 0;//從第start行開始返回
        #endregion

        #region 建立數據庫鏈接
        /// <summary>
        /// 建立數據庫連接
        /// </summary>
        /// <returns>返回SqlConnection對象</returns>

        public SqlConnection getcon()
        {
            SqlConnection myCon = new SqlConnection(connectionString);           
            return myCon;
        }

        #region 設置DataGridView分頁顯示的參數,和初次綁定
        /// <summary>
        /// 設置DataGridView分頁顯示的參數,和初次綁定
        /// </summary>
        /// <param name="sqlstr">設置查詢的sql語句</param>
        /// <param name="table">設置返回綁定的DataSet中的表的名稱</param>
        /// <param name="dgv">要綁定的DataGridView</param>
        
        public void upPage(string sqlstr,string table,DataGridView dgv)
        {
            rowsall = dbexecute.getds(sqlstr, table).Tables[table].Rows.Count;//總行數
            if (rowsall == 0)
            {
                //如果沒有數據則將第一頁、上一頁、下一頁、最後一頁設置爲不可用;並設置其他參數
                toolStripButton2.Enabled = false;
                toolStripButton3.Enabled = false;
                toolStripButton4.Enabled = false;
                toolStripButton5.Enabled = false;
                page = 0;
                pageall = 0;
                rowsall = 0;
                dgv.DataSource = null;
                tslRowsall.Text = rowsall.ToString();
                tslPageAll.Text = pageall.ToString();
                tslPage.Text = page.ToString();
                return;
            }
            if (rowsall > 0)//判斷是否有內容
            {
                page = 1;//如果有內容,設置爲第一頁
                start = 0;
            }           
            int yushu = rowsall % count;//是否存在餘行
            if (yushu == 0)//不存在餘行時設置總頁數
            {
                if (rowsall > 0 && rowsall <= count)
                {
                    pageall = 1;
                }
                else
                {
                    pageall = rowsall / count;
                }
            }
            else//存在餘行時設置總頁數
            {
                pageall = rowsall / count + 1;
            }
            {//設置顯示數據,
                tslRowsall.Text = rowsall.ToString();
                tslPageAll.Text = pageall.ToString();
                tslPage.Text = page.ToString();
                if (pageall > 0)
                { //設置跳轉到第幾頁
                    
                     tscbPage.Items.Clear();
                    for (int i = 1; i <= pageall; i++)
                        tscbPage.Items.Add(i);
                }
            }
            selectsql = sqlstr; //設置sql語句
            dgv.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView

        }
        #endregion

        #region
        /// <summary>
        /// 分頁返回DataTable
        /// </summary>
        /// <param name="sql">查詢的sql語句</param>
        /// <param name="i">從第i行開始返回</param>
        /// <param name="j">共返回j行記錄</param>
        /// <param name="tablename">返回DataSet中的表明</param>
        /// <returns>返回DataTable</returns>

        public DataTable gettb(string sql, int start, int count, string tablename)
        {
            SqlConnection con = this.getcon();
            DataSet myds = new DataSet();
            SqlDataAdapter sda = new SqlDataAdapter(sql, con);

            sda.Fill(myds, start, count, tablename);
            return myds.Tables[tablename];
        }
        #endregion

        /// 第一頁
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            if (pageall > 1)
            {
                start = 0;
                page = 1;
                tslPage.Text = page.ToString();
                this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView
            }
        }

        // 上一頁
        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            if (page >1)
            {               
                page--;
                start -= 20;               
                tslPage.Text = page.ToString();
                 this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView
            }      

        }

        /// 下一頁
        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            if (page < pageall)
            {               
                page++;
                start += 20;               
                tslPage.Text = page.ToString();
                this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView
            }      
           
        }

         //最後一頁
        private void toolStripButton5_Click(object sender, EventArgs e)
        {
            if (pageall > 0)
            {
                start = (pageall - 1) * count;
                page = pageall;
                tslPage.Text = page.ToString();
                 this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table")‘;//綁定DataGridView
            }
        }

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章