• 实现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.Threading;

    namespace WinMilkProject.Project
    {

        public partial class Form1 : Form
        {
            Thread myThread;

            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 = CommonEx.GetDataTableEx("select * from table1");//自己写的数据封装类 能够返回一个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() + "";
            }

        }
    }

  • 相关阅读:
    mysql 安装教程
    Centos 7和 Centos 6开放查看端口 防火墙关闭打开
    yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
    CentOS更改yum源与更新系统
    Linux中文显示乱码?如何设置centos显示中文
    centos 7 升级/安装 git 2.7.3
    Maven实现项目构建直接部署Web项目到Tomcat
    ODAC (odp.net) 从开发到部署
    OGNL的使用
    DotNet Core 中使用 gRPC
  • 原文地址:https://www.cnblogs.com/ArRan/p/3333517.html
Copyright © 2020-2023  润新知