用线程写了一个:
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();
}
}
}