当前位置: 首页 > news >正文

c# DataGirdView动态刷新

using MySql.Data.MySqlClient;
using System;
using System.Data;
using System.Threading;
using System.Windows.Forms;

namespace DataGirdView
{
public partial class Form1 : Form
{
Thread myThread;
string DBConnationstring = "数据库连接";
MySqlCommand cmd;
MySqlConnection con;
MySqlDataAdapter msda;
public int frequency = 0;//更新时间频率
public static bool isUse = false;//是否停止更新
public static string statusInfo = string.Empty;//状态
private delegate void myDelegate(DataTable dt);//定义委托
public Form1()
{
InitializeComponent();
label2.Text = "更新频率为:" + (trackBar1.Value / 1000).ToString() + "秒";
}

private void Form1_Load(object sender, EventArgs e)
{
myThread = new Thread(startFillDv);//实例化线程
myThread.Start();

}

private void startFillDv()
{
while (true)
{
if (isUse)
{
statusInfo = "正在实时更新数据......";
DataTable dt = getdata("select * from orderimpoert");//自己写的数据封装类 能够返回一个datatable
Grid(dt);
Thread.Sleep(frequency);
}
else
{
statusInfo = "停止更新!";
}
}

}

private void Grid(DataTable dt)
{
if (this.InvokeRequired)
{
this.Invoke(new myDelegate(Grid), new object[] { dt });
}
else
{
try
{
this.dataGridView1.DataSource = null;
this.dataGridView1.DataSource = dt;
dt = null;
statusInfo = "更新完成!";
}
catch
{

}
}

}

private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
if (this.myThread.IsAlive)
{
this.myThread.Abort();//结束线程
}
}

private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = statusInfo;
frequency = trackBar1.Value;
if (statusInfo.Trim() == "正在实时更新数据......")
{
pictureBox1.Visible = true;
}
else
{
pictureBox1.Visible = false;
}

}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
{
isUse = true;
}
else
{
isUse = false;
}

}

private void trackBar1_Scroll(object sender, EventArgs e)
{
label2.Text = "更新频率为:" + (trackBar1.Value / 1000).ToString() + "秒";
}
public DataTable getdata(string sql)
{

try
{
con = new MySqlConnection(DBConnationstring);
con.Open();
cmd = new MySqlCommand(sql, con);
cmd.CommandType = CommandType.Text;
DataTable dt = new DataTable();
msda = new MySqlDataAdapter(cmd);
msda.Fill(dt);
con.Close();
con.Dispose();
return dt;
}
catch (Exception ex)
{
con.Close();
con.Dispose();
return null;
}
}
public int ExecSql(string sql)
{
int a = 0;
try
{
con = new MySqlConnection(DBConnationstring);
con.Open();
cmd = new MySqlCommand(sql, con);
a = cmd.ExecuteNonQuery();
con.Close();
con.Dispose();
return a;
}
catch (Exception)
{
con.Close();
con.Dispose();
return -1;
}
}
}
}

 

 

 

-----------------------------------------------------------------------------------------

源码:https://files-cdn.cnblogs.com/files/Zingu/DataGirdView.rar

转载于:https://www.cnblogs.com/Zingu/p/11447652.html

相关文章:

  • socat管理haproxy配置 ssh-keygen -N '' -t rsa -q -b 2048
  • Centos7 升级内核版本
  • Java——CaptchaUtil生成二维码乱码
  • 阿里云——扩展Linux系统盘
  • Linux——CentOS7没有ifconfig命令
  • etcd常用命令记录
  • STL.h
  • 顶层const 底层const
  • 期末考试(正解:三分单峰函数 me~)
  • const 成员函数
  • Linux——CentOS7没有第二张网卡的配置信息
  • Python3.5学习之旅——day5
  • zabbix监控jvm内存
  • 约瑟夫环算法的几种实现方式,最简单方式,一行代码实现
  • NPM——npm|cnpm如何升级
  • 《Java编程思想》读书笔记-对象导论
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【个人向】《HTTP图解》阅后小结
  • 【译】理解JavaScript:new 关键字
  • es6
  • Golang-长连接-状态推送
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • JS题目及答案整理
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • nodejs调试方法
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 订阅Forge Viewer所有的事件
  • 读懂package.json -- 依赖管理
  • - 概述 - 《设计模式(极简c++版)》
  • 排序算法学习笔记
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 前端知识点整理(待续)
  • 如何在 Tornado 中实现 Middleware
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​虚拟化系列介绍(十)
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #大学#套接字
  • (2)Java 简介
  • (3)llvm ir转换过程
  • (LeetCode C++)盛最多水的容器
  • (pytorch进阶之路)扩散概率模型
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (vue)页面文件上传获取:action地址
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (转)ABI是什么
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • ... 是什么 ?... 有什么用处?
  • ./configure,make,make install的作用(转)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .gitignore文件_Git:.gitignore
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料