效果图

通过Pan里边的查询条件 listview和分页控件从中获取数据

自定义

private int Tnum = 0;//总页数
private int Cnum = 0;//当前页数

点击查询按钮

代码变动

Cnum = 1;
txtCurrentPage.Text = Cnum.ToString();

var data = sqlDb.ExecuteReader(sql);
if (data != null)
Tnum = data.Rows.Count % 100 == 0 ? data.Rows.Count / 100 : (data.Rows.Count / 100 + 1);
labToal.Text = "/" + Tnum;//AS a ORDER BY ID DESC
data.Clear();
backgroundDowork(Cnum);

 background-DoWorker

加一个

if (i +1==100)
{
//data.Clear();
break;
}

分页主要代码

private void toolStripLabel2_Click(object sender, EventArgs e)//页数减
{
if (Cnum > 0)
{
Cnum--;
backgroundDowork(Cnum);
}
}
private void toolStripLabel3_Click(object sender, EventArgs e)//页数加
{

if (Cnum >=0)
{
Cnum++;
backgroundDowork(Cnum);

}
}
public void backgroundDowork(int Cnum)
{
if (Cnum >= 0)
{
txtCurrentPage.Text = Cnum.ToString();
if (backgroundWorker1.IsBusy) return;
var sql1 = string.Format(
"select top 100 *from(select top " + Cnum * 100 +
" *from history where datetime>='{0}' and datetime<'{1}' and connection='{2}' and batgroup='{3}' ORDER BY datetime DESC) AS a ORDER BY datetime ASC",
dateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:00"),
dateTimePicker2.Value.AddMinutes(1).ToString("yyyy-MM-dd HH:mm:00"), comboBox1.Text,
comboBox2.Text);
if (Cnum <= Tnum&&Cnum>0)
{
backgroundWorker1.RunWorkerAsync(sql1);
listView1.VirtualListSize = 0;
}
else
listView1.Items.Clear();

}
}

private void btnFirst_Click(object sender, EventArgs e)
{
backgroundDowork(1);
}

private void btnlast_Click(object sender, EventArgs e)
{
backgroundDowork(Tnum);
}

private void toolStripButton1_Click(object sender, EventArgs e)
{
var num = Convert.ToInt32(txtCurrentPage.Text);
backgroundDowork(num);
}