zoukankan      html  css  js  c++  java
  • 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);
            }
        }

  • 相关阅读:
    面试题19:包含min函数的栈
    编程之美 计算字符串的相似度
    android 数据持久化——I/O操作
    SSD磁盘,CPU居高不下,高并发的情况下,是不是mysql解析器耗费的cpu资源高?
    Eclipse、MyEclipse优化,提高运行速度
    Sonar入门学习
    Oracle 生成指定范围内随机日期
    ios中的GCD
    如何使用Win8系统自带杀毒软件
    安装Ubuntu版本linux过程中没有提示设置root用户密码问题的解决办法
  • 原文地址:https://www.cnblogs.com/stragon/p/1628205.html
Copyright © 2011-2022 走看看