• 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

  • 相关阅读:
    Scala 构造器
    Scala 模式匹配
    Scala class & case class & object & case object 对比
    Scala 数据类型 & 类型转换 & 转换精度
    Scala val 和 var 的区别
    Shell脚本统计词频
    Linux基础命令使用总结
    WebGL学习笔记(七):输入和动画
    javaNIO:通道和文件通道 Channel
    javaNIO:缓冲区 Buffer
  • 原文地址:https://www.cnblogs.com/Zingu/p/11447652.html
Copyright © 2020-2023  润新知