将DataGridView绑定到数据库中的表

时间:2016-02-25 18:28:28

标签: c# datagridview bindingsource mdf

我想将DataGridView绑定到我的数据库中的表。我已经找到了几个关于此问题的主题,但我无法让它发挥作用。也许我错过了一些东西。

我正在建立一个"监视器"我希望在其中查看特定表的任何数据库更改。因此,在将数据加载到DataGridView之后,该特定表中的任何更改都应传播到DataGridView。

看看我做了什么:

    SqlDataAdapter daTab;
    DataTable dTable;

    private void button1_Click(object sender, EventArgs e)
    {

        string s;
        s = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\tempDB\Database1.mdf;Integrated Security=True";
        SqlConnection conn= new SqlConnection(s);
        conn.Open();

        daTab = new SqlDataAdapter("Select * From tab", conn);
        dTable = new DataTable();
        daTab.Fill(dTable);
        BindingSource bSource = new BindingSource();
        bSource.DataSource = dTable;
        dgv1.DataSource = bSource;
    }

但它只在我运行

时更新DataViewGrid
daTab.Fill(dTable);

所以我可以从这里有两个选项:1)让它正常工作(这就是为什么我需要你的帮助)或2)放一个计时器并以某个时间间隔运行daTab.Fill(dTable);。我特别关注选项1)。所以,我感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

听起来你正在使用SQL Server。如果是这样,请查看SqlDependency类。您可以为此类的OnChange事件创建委托,并收到更改通知,然后您可以将这些更改传播到GridView。以下是一些关于该主题的精彩文章: https://msdn.microsoft.com/en-us/library/62xk7953(v=vs.110).aspx