C# WinForm dataGridview 分页实现

  1. //导入命名空间部分省略  
  2.   
  3.        DBClass.DBExecute dbexecute = new DBExecute();          
  4.   
  5.        string connectionString = @"Data Source=ServerName;Database=DatabaseName;integrated security=true";  
  6.  
  7.        #region 初始化分页显示的参数     
  8.        static int rowsall = 0;//总行数       
  9.        static int pageall = 0;//总页数  
  10.        static int page = 0;//第几页  
  11.        static int count = 20;//设置一页显示20行  
  12.        static int start = 0;//从第start行开始返回  
  13.        #endregion  
  14.  
  15.        #region 建立数据库链接  
  16.        /// <summary>  
  17.        /// 建立数据库连接  
  18.        /// </summary>  
  19.        /// <returns>返回SqlConnection对象</returns>  
  20.        public SqlConnection getcon()  
  21.        {  
  22.            SqlConnection myCon = new SqlConnection(connectionString);              
  23.            return myCon;  
  24.        }  
  25.  
  26.        #region 设置DataGridView分页显示的参数,和初次绑定  
  27.        /// <summary>  
  28.        /// 设置DataGridView分页显示的参数,和初次绑定  
  29.        /// </summary>  
  30.        /// <param name="sqlstr">设置查询的sql语句</param>  
  31.        /// <param name="table">设置返回绑定的DataSet中的表的名称</param>  
  32.        /// <param name="dgv">要绑定的DataGridView</param>          
  33.        public void upPage(string sqlstr,string table,DataGridView dgv)  
  34.        {  
  35.            rowsall = dbexecute.getds(sqlstr, table).Tables[table].Rows.Count;//总行数  
  36.            if (rowsall == 0)  
  37.            {  
  38.                //如果没有数据则将第一页、上一页、下一页、最后一页设置为不可用;并设置其他参数  
  39.                toolStripButton2.Enabled = false;  
  40.                toolStripButton3.Enabled = false;  
  41.                toolStripButton4.Enabled = false;  
  42.                toolStripButton5.Enabled = false;  
  43.                page = 0;  
  44.                pageall = 0;  
  45.                rowsall = 0;  
  46.                dgv.DataSource = null;  
  47.                tslRowsall.Text = rowsall.ToString();  
  48.                tslPageAll.Text = pageall.ToString();  
  49.                tslPage.Text = page.ToString();  
  50.                return;  
  51.            }  
  52.            if (rowsall > 0)        //判断是否有内容  
  53.            {  
  54.                page = 1;           //如果有内容,设置为第一页  
  55.                start = 0;  
  56.            }              
  57.            int yushu = rowsall % count;        //是否存在余行  
  58.            if (yushu == 0)             //不存在余行时设置总页数  
  59.            {  
  60.                if (rowsall > 0 && rowsall <= count)  
  61.                {  
  62.                    pageall = 1;  
  63.                }  
  64.                else  
  65.                {  
  66.                    pageall = rowsall / count;  
  67.                }  
  68.            }  
  69.            else                 //存在余行时设置总页数  
  70.            {  
  71.                pageall = rowsall / count + 1;  
  72.            }  
  73.   
  74.            {//设置显示数据,   
  75.                tslRowsall.Text = rowsall.ToString();  
  76.                tslPageAll.Text = pageall.ToString();  
  77.                tslPage.Text = page.ToString();  
  78.                if (pageall > 0)  
  79.                { //设置跳转到第几页  
  80.                    tscbPage.Items.Clear();  
  81.                    for (int i = 1; i <= pageall; i++)  
  82.                        tscbPage.Items.Add(i);  
  83.                }  
  84.            }  
  85.            selectsql = sqlstr; //设置sql语句  
  86.            dgv.DataSource = gettb(selectsql ,start,count,"table");//绑定DataGridView  
  87.   
  88.        }  
  89.        #endregion  
  90.  
  91.        #region  
  92.        /// <summary>  
  93.        /// 分页返回DataTable  
  94.        /// </summary>  
  95.        /// <param name="sql">查询的sql语句</param>  
  96.        /// <param name="i">从第i行开始返回</param>  
  97.        /// <param name="j">共返回j行记录</param>  
  98.        /// <param name="tablename">返回DataSet中的表明</param>  
  99.        /// <returns>返回DataTable</returns>  
  100.        public DataTable gettb(string sql, int start, int count, string tablename)  
  101.        {  
  102.            SqlConnection con = this.getcon();  
  103.            DataSet myds = new DataSet();  
  104.            SqlDataAdapter sda = new SqlDataAdapter(sql, con);  
  105.   
  106.            sda.Fill(myds, start, count, tablename);  
  107.            return myds.Tables[tablename];  
  108.        }  
  109.        #endregion  
  110.   
  111.        /// 第一页  
  112.        private void toolStripButton2_Click(object sender, EventArgs e)  
  113.        {  
  114.            if (pageall > 1)  
  115.            {  
  116.                start = 0;  
  117.                page = 1;  
  118.                tslPage.Text = page.ToString();  
  119.                this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table");//绑定DataGridView  
  120.            }  
  121.        }  
  122.   
  123.        // 上一页  
  124.        private void toolStripButton3_Click(object sender, EventArgs e)  
  125.        {  
  126.            if (page >1)  
  127.            {                  
  128.                page--;  
  129.                start -= 20;                  
  130.                tslPage.Text = page.ToString();  
  131.   
  132.                 this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table");//绑定DataGridView  
  133.            }         
  134.   
  135.        }  
  136.   
  137.        /// 下一页  
  138.        private void toolStripButton4_Click(object sender, EventArgs e)  
  139.        {  
  140.            if (page < pageall)  
  141.            {                  
  142.                page++;  
  143.                start += 20;                  
  144.                tslPage.Text = page.ToString();  
  145.                this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table");//绑定DataGridView  
  146.            }         
  147.               
  148.        }  
  149.   
  150.         //最后一页  
  151.        private void toolStripButton5_Click(object sender, EventArgs e)  
  152.        {  
  153.            if (pageall > 0)  
  154.            {  
  155.                start = (pageall - 1) * count;  
  156.                page = pageall;  
  157.                tslPage.Text = page.ToString();  
  158.                this.dataGridView1.DataSource = gettb(selectsql ,start,count,"table");//绑定DataGridView  
  159.            }  
  160.        }  
  161.   
  162.   
  163.        //上边红色部分获取总行数是调用的数据操作层里的getds方法返回一个数据集,类和方法如下:  
  164.   
  165.        class DBExecute  
  166.        {  
  167.            string G_str_connectionString = @"Data Source=70AB360C9ABA49E\SQLEXPRESS;Database=db_CRM;integrated security=true";//这里设置成你自己的连接  
  168.            public DBExecute(){}  
  169.            public DBExecute(string M_str_connectionString)   
  170.            {  
  171.                G_str_connectionString = M_str_connectionString;  
  172.            }  
  173.            #region 建立数据库链接  
  174.            /// <summary>  
  175.            /// 建立数据库连接  
  176.            /// </summary>  
  177.            /// <returns>返回SqlConnection对象</returns>  
  178.            public SqlConnection getcon()  
  179.            {  
  180.                string M_str_sqlcon = G_str_connectionString;  
  181.                SqlConnection myCon = new SqlConnection(M_str_sqlcon);              
  182.                return myCon;  
  183.            }  
  184.            #endregion  
  185.            #region 查询数据库返回一个DataSet对象  
  186.            /// <summary>  
  187.            /// 查询数据库返回一个DataSet对象  
  188.            /// </summary>  
  189.            /// <param name="M_str_sqlstr">SQL语句</param>  
  190.            /// <param name="M_str_table">表名</param>  
  191.            /// <returns>返回DataSet对象</returns>  
  192.            public DataSet getds(string M_str_sqlstr, string M_str_table)  
  193.            {  
  194.                DataSet myds = new DataSet();  
  195.                SqlConnection sqlcon = this.getcon();  
  196.                SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon);  
  197.                sqlda.Fill(myds, M_str_table);             
  198.                return myds;  
  199.            }  
  200.            #endregion  
  201.        }  
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值