none
VB2005 DataGridView 自动刷新查询数据的问题 RRS feed

  • 问题

  •  

    请都各位高手:

           利用VB2005制作的屏保文件,在不重新运行的情况下,怎样让DataGridView的数据按固定的时间自动刷新查询?

           如有回复,非常感谢!
    2008年10月13日 1:32

答案

  • Code Snippet

    public Form1()
    {
        InitializeComponent();
    }

    Timer t;
    string cnstring = "Data Source=192.168.3.1;Initial Catalog=jGroup2;User Id=sa;Password=xxxxx;";
    private void Form1_Load(object sender, EventArgs e)
    {
        t = new Timer();
        t.Interval = 2000;
        t.Tick += new EventHandler(t_Tick);
        t.Start();
    }


    void t_Tick(object sender, EventArgs e)
    {

        SqlConnection cn = new SqlConnection(this.cnstring);
        SqlCommand cmd = new SqlCommand("select * from B_Article", cn);
        SqlDataAdapter ad = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        ad.Fill(ds, "Article");
        this.dataGridView1.DataSource = ds;
        this.dataGridView1.DataMember = "Article";
        this.dataGridView1.Refresh();
        cn.Close();

    }



    例子
    2008年10月14日 4:59
    版主

全部回复

  • 你写个定时器,自动更新数据源就可以了
    2008年10月13日 1:58
    版主
  • 用Timer控件

     

    2008年10月13日 2:30
    版主
  • 我是用Timer控件做的,定时刷新再用DataGridView重新获取数据源,但是DataGridView的数据就是不自动更新,换一种方法,要么是:每刷新一次就在上一次查询的结果下面增加同样的数据,要么是刷新之后自定义的格式变了,还是不自动更新。请问是怎么回事?谢谢!
    2008年10月14日 1:27
  • dataGridView1.Refresh()
    2008年10月14日 2:03
    版主
  •  

    此语句我已经试过,看似刷新了,但数据不更新。不知是哪里出错了。
    2008年10月14日 3:34
  • Code Snippet

    public Form1()
    {
        InitializeComponent();
    }

    Timer t;
    string cnstring = "Data Source=192.168.3.1;Initial Catalog=jGroup2;User Id=sa;Password=xxxxx;";
    private void Form1_Load(object sender, EventArgs e)
    {
        t = new Timer();
        t.Interval = 2000;
        t.Tick += new EventHandler(t_Tick);
        t.Start();
    }


    void t_Tick(object sender, EventArgs e)
    {

        SqlConnection cn = new SqlConnection(this.cnstring);
        SqlCommand cmd = new SqlCommand("select * from B_Article", cn);
        SqlDataAdapter ad = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        ad.Fill(ds, "Article");
        this.dataGridView1.DataSource = ds;
        this.dataGridView1.DataMember = "Article";
        this.dataGridView1.Refresh();
        cn.Close();

    }



    例子
    2008年10月14日 4:59
    版主
  • 谢谢楼主的回复!以上的内容的我试了,但是Form_Load里面引用Timer_tick事件出错,所以没用。我现在是将查询的数据另外用sub()函数做,Form_Load需要用数据的时候就引用 Sub()函数,Timer_Tick也一样引用,基本上实现了自动刷新数据的效果。

    2008年10月25日 4:45
  •  

    这个好像不是Visual Basic吧!不过方法倒是可以借鉴。

    有没有简单一点的刷新方法?

    2008年11月18日 4:56