本人创建了一个winform程序,用gridview来显示的数据参数。数据参数需要实时更新到gridview中,时间间隔是1s,就是每秒要刷新一次gridview中的数据。
表的结构是如下,前面是参数名,后面是参数。参数名是固定的,只需要刷新参数。
参数是从网络上传来的数据。假如本人用一个单元格一个单元格更新的话,时间长了数据就不是实时的了,相当于本人现在更新的是网络上几秒前甚至几分钟前的数据。
下面是其中一个参数块的更新方式:
表的结构是如下,前面是参数名,后面是参数。参数名是固定的,只需要刷新参数。
参数是从网络上传来的数据。假如本人用一个单元格一个单元格更新的话,时间长了数据就不是实时的了,相当于本人现在更新的是网络上几秒前甚至几分钟前的数据。
下面是其中一个参数块的更新方式:
private void FillCCBZCell( float[] fVal) { int nValIndex = 0; for (int i = 1; i < 21; i++) { dataGridViewX1.Rows[i].Cells[1].Value = fVal[nValIndex]; nValIndex++; } }
用这种方式每秒更新300多个数据,不太靠谱。
有什么办法实时更新吗?
解决方案
15
定义一个datatable,这个datatable的表结构和你这张表一致,
DataTable dt = new DataTable();
dt.Columns.Add(“IP地址”, typeof(string));
dt.Columns.Add(“参数块1”, typeof(string));
dt.Columns.Add(“参数块2”, typeof(string));
DataTable dt = new DataTable();
dt.Columns.Add(“IP地址”, typeof(string));
dt.Columns.Add(“参数块1”, typeof(string));
dt.Columns.Add(“参数块2”, typeof(string));
然后对dt填充你的数据。
DataRow _row = dt.NewRow();
_row[“参数块1”] = …..
_row[“参数块2”] = …..
dt.Rows.Add(_row);
然后刷新datagridview时候,dataGridView1.DataSource = dt;
即可。
15
15
封装个方法吧,个人觉得300的数据量不大,最蠢的办法就是封装好方法(这个方法要实现查询数据,以及吧查询到的数据绑定到gridview) 封装好了就要用到Timer定时器了,在定时器里面设置时间,多久触发就可以了。这个思路比较简单,LZ可以本人动手试试
15
写个更新服务保持?
15
搜下“数据绑定”,文章比较多
数据操作针对后台的DataTable完成,界面只是绑定展示,这样便于维护。
这个界面设计的也够乱的,可以给用户分类显示
通过多个tab或下拉列表来选择
2
可以用监听数据源的方式!
5
错误报警建议在form上加报警日志模块,
一旦报警,就在运行日志模块记录下来,保存时间、标签、报警类型等,
同时提供报警信息导出到文件,
方便用户查看、追溯错误。
18
定义一个datatable,这个datatable的表结构和你这张表一致,
DataTable dt = new DataTable();
dt.Columns.Add(“IP地址”, typeof(string));
dt.Columns.Add(“参数块1”, typeof(string));
dt.Columns.Add(“参数块2”, typeof(string));
DataTable dt = new DataTable();
dt.Columns.Add(“IP地址”, typeof(string));
dt.Columns.Add(“参数块1”, typeof(string));
dt.Columns.Add(“参数块2”, typeof(string));
然后对dt填充你的数据。
DataRow _row = dt.NewRow();
_row[“参数块1”] = …..
_row[“参数块2”] = …..
dt.Rows.Add(_row);
然后刷新datagridview时候,dataGridView1.DataSource = dt;
即可。
=====================
这个方法应该比较靠谱