zoukankan      html  css  js  c++  java
  • 实现即时更新数据 反映在DataView或则DataGrid 在winform ·····


    用线程写了一个:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Xml;
    using System.Threading;
    using System.Data.SqlClient;

    namespace TestForm
    {
        public partial class Form1 : Form
        {
            //定义一个变量,用于关闭线程
            private bool flag;
            //定义一个线程
            private Thread thread;

            //定义一个委托
            public delegate void MyInvoke(DataSet ds);

            public Form1()
            {
                InitializeComponent();
                flag = true;
                thread = new Thread(new ThreadStart(threadProc));
                thread.Start();
            }

            //线程回调函数
            private void threadProc()
            {
                while (flag)
                {
                    //三秒种一次
                    DataBind();          
                    Thread.Sleep(3000);
                }
            }
            //操作DataGridView
            private void BindDataGridView(DataSet ds)
            {
                this.dataGridView1.DataSource = ds.Tables["student"];
            }
            //从数据库中取出数据,并绑定
            private void DataBind()
            {
                SqlConnection con = new SqlConnection("server=.;database=student;uid=sa;pwd=0421");
                try
                {
                    con.Open();
                    SqlDataAdapter sda = new SqlDataAdapter("select * from studentInfor", con);
                    DataSet ds = new DataSet();
                    sda.Fill(ds, "student");
                    //this.dataGridView1.DataSource = ds.Tables["student"];
                    //绑定数据到DataGridView
                    MyInvoke mi = new MyInvoke(BindDataGridView);
                    this.BeginInvoke(mi, new object[] { ds });
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    con.Close();
                }
            }

            private void button1_Click(object sender, EventArgs e)
            {
                //测试,添加一条数据,看隔一段时间后,能否取上来..
                SqlConnection con = new SqlConnection("server=.;database=student;uid=sa;pwd=0421");
                try
                {
                    con.Open();
                    SqlCommand cmd = new SqlCommand("insert into studentInforvalues('1111111','test')", con);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    con.Close();
                }
            }

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                //关闭前先关闭线程
                flag = false;
                thread.Join();
            }


        }
    }


    //======================================
    再用Timer写一个:


    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.Threading ;


    namespace Test
    {
        public partial class Form1 : Form
        {

            public Form1()
            {
                InitializeComponent();
                //设置间隔,启动Timer
                this.timer1.Interval = 3000;
                this.timer1.Enabled = true;
               
            }

            //从数据库中取出数据,并绑定
            private void DataBind()
            {
                SqlConnection con = new SqlConnection("server=.;database=student;uid=sa;pwd=0421");
                try
                {
                    con.Open();
                    SqlDataAdapter sda = new SqlDataAdapter("select * from studentInfor", con);
                    DataSet ds = new DataSet();
                    sda.Fill(ds, "student");
                    this.dataGridView1.DataSource = ds.Tables["student"];
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    con.Close();
                }
            }

           
            private void button1_Click(object sender, EventArgs e)
            {
                //测试,添加一条数据,看隔一段时间后,能否取上来..
                SqlConnection con = new SqlConnection("server=.;database=student;uid=sa;pwd=0421");
                try
                {
                    con.Open();
                    SqlCommand cmd = new SqlCommand("insert into studentInfor values('1111111','test')", con);
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    con.Close();
                }
            }

            private void timer1_Tick(object sender, EventArgs e)
            {
                //每隔三秒,响应一次
                DataBind();
            }
        }
    }

     

  • 相关阅读:
    深入理解计算机系统 第六章 存储器层次结构 第二遍
    深入理解计算机系统 第六章 存储器层次结构
    深入理解计算机系统 第八章 异常控制流 Part2 第二遍
    深入理解计算机系统 第八章 异常控制流 part2
    深入理解计算机系统 第八章 异常控制流 Part1 第二遍
    深入理解计算机系统 第八章 异常控制流 part1
    深入理解计算机系统 第三章 程序的机器级表示 Part2 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part2
    深入理解计算机系统 第三章 程序的机器级表示 Part1 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part1
  • 原文地址:https://www.cnblogs.com/Fooo/p/708473.html
Copyright © 2011-2022 走看看