小弟写了一段程序,主要是在winform中添加datagridview来实现数据的实时更新和分页,
但是由于刷新太快,导致不能翻页,而且滚动条也不能拖动。
有哪位高手可以帮帮忙啊!!!急用!!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.SqlTypes;namespace TEXT5
{
public partial class Form1 : Form
{
SqlDataAdapter da;
DataTable dt;
int PageCount;
int maxRecord;
int pageSize;
int currentPage;
int recordNo; private void LoadPage()
{
int i;
int startRecord;
int endRecord;
DataTable dtTemp;
dtTemp = dt.Clone(); if (currentPage == PageCount)
{
endRecord = maxRecord;
}
else
{
endRecord = pageSize * currentPage;
}
startRecord = recordNo;
for (i = startRecord; i < endRecord; i++)
{
dtTemp.ImportRow(dt.Rows[i]);
recordNo += 1;
}
dataGridView1.DataSource = dtTemp;
}
public Form1()
{
InitializeComponent();
} private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Initial Catalog = shiyan;Data Source = localhost;Integrated Security = SSPI;";
da = new SqlDataAdapter("select * from CH4", conn);
dt = new DataTable();
da.Fill(dt);
BindingSource bs = new BindingSource();
bs.DataSource = dt;
this.dataGridView1.DataSource = bs;
DataColumn myCol = new DataColumn();
myCol.ColumnName = "瓦斯浓度";
myCol.DataType = typeof(string);
dt.Columns.Add(myCol); Random r1 = new Random();
for (int i = 0; i < 100; i++)
{
DataRow row = dt.Rows[i];
row.BeginEdit();
row["瓦斯浓度"] = r1.Next(100).ToString();
row.EndEdit();
}
FillGrid();
timer1.Interval = 1000;
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Interval = 1;
} private void btnFirstPage_Click(object sender, EventArgs e)
{
if (currentPage == 1)
{
MessageBox.Show("已经是第一页了");
return;
} currentPage = 1;
recordNo = 0;
LoadPage();
} private void btnPreviousPage_Click(object sender, EventArgs e)
{
currentPage -= 1;
if (currentPage < 1)
{
MessageBox.Show("已经是第一页了");
currentPage = 1;
return;
}
else
{
recordNo = pageSize * (currentPage - 1);
}
LoadPage();
} private void btnNextPage_Click(object sender, EventArgs e)
{
currentPage += 1;
if (currentPage > PageCount)
{
currentPage = PageCount;
if (recordNo == maxRecord)
{
MessageBox.Show("已经是最后一页了");
return;
}
}
LoadPage();
} private void btnLastPage_Click(object sender, EventArgs e)
{
if (recordNo == maxRecord)
{
MessageBox.Show("已经是最后一页了");
return;
}
currentPage = PageCount;
recordNo = pageSize * (currentPage - 1);
LoadPage();
}
public void FillGrid()
{
pageSize = 10;
maxRecord = dt.Rows.Count;
PageCount = maxRecord / pageSize;
if ((maxRecord % pageSize) > 0)
{
PageCount += 1;
}
currentPage = 1;
recordNo = 0;
LoadPage(); }
}
}
但是由于刷新太快,导致不能翻页,而且滚动条也不能拖动。
有哪位高手可以帮帮忙啊!!!急用!!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.SqlTypes;namespace TEXT5
{
public partial class Form1 : Form
{
SqlDataAdapter da;
DataTable dt;
int PageCount;
int maxRecord;
int pageSize;
int currentPage;
int recordNo; private void LoadPage()
{
int i;
int startRecord;
int endRecord;
DataTable dtTemp;
dtTemp = dt.Clone(); if (currentPage == PageCount)
{
endRecord = maxRecord;
}
else
{
endRecord = pageSize * currentPage;
}
startRecord = recordNo;
for (i = startRecord; i < endRecord; i++)
{
dtTemp.ImportRow(dt.Rows[i]);
recordNo += 1;
}
dataGridView1.DataSource = dtTemp;
}
public Form1()
{
InitializeComponent();
} private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Initial Catalog = shiyan;Data Source = localhost;Integrated Security = SSPI;";
da = new SqlDataAdapter("select * from CH4", conn);
dt = new DataTable();
da.Fill(dt);
BindingSource bs = new BindingSource();
bs.DataSource = dt;
this.dataGridView1.DataSource = bs;
DataColumn myCol = new DataColumn();
myCol.ColumnName = "瓦斯浓度";
myCol.DataType = typeof(string);
dt.Columns.Add(myCol); Random r1 = new Random();
for (int i = 0; i < 100; i++)
{
DataRow row = dt.Rows[i];
row.BeginEdit();
row["瓦斯浓度"] = r1.Next(100).ToString();
row.EndEdit();
}
FillGrid();
timer1.Interval = 1000;
}
private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Interval = 1;
} private void btnFirstPage_Click(object sender, EventArgs e)
{
if (currentPage == 1)
{
MessageBox.Show("已经是第一页了");
return;
} currentPage = 1;
recordNo = 0;
LoadPage();
} private void btnPreviousPage_Click(object sender, EventArgs e)
{
currentPage -= 1;
if (currentPage < 1)
{
MessageBox.Show("已经是第一页了");
currentPage = 1;
return;
}
else
{
recordNo = pageSize * (currentPage - 1);
}
LoadPage();
} private void btnNextPage_Click(object sender, EventArgs e)
{
currentPage += 1;
if (currentPage > PageCount)
{
currentPage = PageCount;
if (recordNo == maxRecord)
{
MessageBox.Show("已经是最后一页了");
return;
}
}
LoadPage();
} private void btnLastPage_Click(object sender, EventArgs e)
{
if (recordNo == maxRecord)
{
MessageBox.Show("已经是最后一页了");
return;
}
currentPage = PageCount;
recordNo = pageSize * (currentPage - 1);
LoadPage();
}
public void FillGrid()
{
pageSize = 10;
maxRecord = dt.Rows.Count;
PageCount = maxRecord / pageSize;
if ((maxRecord % pageSize) > 0)
{
PageCount += 1;
}
currentPage = 1;
recordNo = 0;
LoadPage(); }
}
}
解决方案 »
- 本标题很简单,求解.NET 一个问题解答.欢迎发言
- 问一下搞DOTNET的朋友们 你们感觉怎么样
- 请教能不能把SqlDataReader.Read取得的数据用DataGrid显示出来?
- C#中操作Word文档,怎样取出所有的包括有指定文本的那一句
- 数据表?????高手出现
- TextBox 的绑定问题!
- 如何强制刷新webbrowser的显示内容?
- 【求解】C# 解压文件到内存,然后分析内存中的文件把数据保存到数据库
- 有关Newtonsoft.Json.dll的问题
- 求教!数据库image类型字段的写入与读取及作图
- C#写的程序在其他机器上运行经常出现“XXX遇到问题需要关闭。我们对此引起的不便表示抱歉。”的提示
- 如何取出IList<t> 的前5项?
你每秒钟刷一次datagridView,还要翻页干啥,数据看都没法看。