datagridview定时分页(翻页)

datagridview实现在下面。当然用存储过程分页取数据会更方便一些。
这里我假设datagridview一页显示五行,两秒变换一次。
拖一个时间控件到页面上,设置Interval属性为2000.
另:在最后计算取得行数时有问题,你自己算算就行了

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        private DataSet myDataSet = new DataSet();
        private int DataRowsCountTotal = 0;
        private int PageCount = 0;
        private int residualRowsCount = 0;
        private int TakeCount = 0;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string myConnectString = "Data Source=emp05;Initial Catalog=SHOWS_Web;Persist Security Info=True;User ID=sa;Password=inetsn@SQL#No.0";
            SqlConnection myConn = new SqlConnection(myConnectString);
            myConn.Open();
            SqlCommand myComm = new SqlCommand("SELECT UserID,UserName FROM Users", myConn);
            SqlDataAdapter myAdap = new SqlDataAdapter();
            myAdap.SelectCommand = myComm;
            myAdap.Fill(myDataSet,"myData");
            DataRowsCountTotal = PageCount = myDataSet.Tables[0].Rows.Count;
            PageCount = DataRowsCountTotal / 5;
            residualRowsCount = DataRowsCountTotal % 5;
            DataGrieDataBind(0);
            this.timer1.Start();
        }

        private void DataGrieDataBind(int PageSequence)
        {
            DataTable myDt = new DataTable();
            myDt = myDataSet.Tables[0].Clone();
            myDt.Clear();
            if(PageSequence >  PageCount)
            {
                for(int i =5*PageSequence -1; i <=  DataRowsCountTotal -1;i++)
                {
                    myDt.ImportRow(myDataSet.Tables[0].Rows[i]);
                }
            }
            else
            {
                for (int i = 5 * PageSequence; i <= 5 * (PageSequence+1)-1; i++)
                {
                    myDt.ImportRow(myDataSet.Tables[0].Rows[i]);
                }
            }
            myDt.AcceptChanges();
            this.dataGridView1.DataSource = myDt;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            TakeCount = TakeCount + 1;
            if (TakeCount > PageCount)
            {
                if (residualRowsCount == 0)
                {
                    TakeCount = 0;
                }
            }
            DataGrieDataBind(TakeCount);
        }
    }

原文地址:https://www.cnblogs.com/stragon/p/1628205.html