none
在VS2010中使用TableAdapter的Fill方法将ACCESS数据添加到数据集出现问题 RRS feed

  • 问题

  • 在VS2010中使用TableAdapter的Fill方法将ACCESS数据添加到数据集出现问题。我的想法是在vs2010中实时显示数据库中的数据,我使用时的是timer控件,每隔5秒钟使用fill将数据添加到数据集中,但是存在的问题是当数据库中的数据发生变化时候,添加到数据集中的数据没有发生变化,一直没有找到原因,期待各位大侠帮忙提示一下。
    2013年11月18日 10:36

答案

  • 你好:

    欢迎来到MSDN中文论坛。

    我用以下代码做了简单测试:

    private void Form1_Load(object sender, EventArgs e)
            {
                this.timer1.Enabled = true;
                this.timer1.Start();
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                Console.WriteLine("5s has passed...");
                using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=test.accdb;Persist Security Info=False;"))
                {
                    conn.Open();
                    using (OleDbCommand cmd = new OleDbCommand("select * from t_user", conn))
                    {
                        OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                        DataSet ds = new DataSet();
                        adapter.Fill(ds);
                        this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
                    }
                }
            }

    当我手动去修改Access数据库文件的时候,DataGridView控件的数据内容会在下一个timer的Tick事件中同步更新,并不会有什么问题。如果你的代码不是这样写的话请将你自己的代码贴出来供别人参考测试。

    谢谢。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年11月20日 2:40
    版主

全部回复

  • 2013年11月19日 2:01
    版主
  • 你好:

    欢迎来到MSDN中文论坛。

    我用以下代码做了简单测试:

    private void Form1_Load(object sender, EventArgs e)
            {
                this.timer1.Enabled = true;
                this.timer1.Start();
            }
    
            private void timer1_Tick(object sender, EventArgs e)
            {
                Console.WriteLine("5s has passed...");
                using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=test.accdb;Persist Security Info=False;"))
                {
                    conn.Open();
                    using (OleDbCommand cmd = new OleDbCommand("select * from t_user", conn))
                    {
                        OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                        DataSet ds = new DataSet();
                        adapter.Fill(ds);
                        this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
                    }
                }
            }

    当我手动去修改Access数据库文件的时候,DataGridView控件的数据内容会在下一个timer的Tick事件中同步更新,并不会有什么问题。如果你的代码不是这样写的话请将你自己的代码贴出来供别人参考测试。

    谢谢。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年11月20日 2:40
    版主