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);
}
}