c# - 将 DataGridView 绑定(bind)到数据库中的表

标签 c# datagridview bindingsource mdf

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

我正在构建一个“监视器”,我想在其中查看特定表的任何数据库更改。因此,将数据加载到 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)。因此,我非常感谢您提供的任何帮助。

最佳答案

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

关于c# - 将 DataGridView 绑定(bind)到数据库中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35635366/

相关文章:

c# - 将 DataGridView 中的列转换为 ComboBox

c# - 以编程方式在文本框中移动插入符,排列和排列

c# - 将 IQueryable 转换为 BindingList

c# - 删除列表中最后一项时数据绑定(bind)的 InvalidOperationException

c# - 使用循环构建 Where 子句并将每个迭代与 OR 连接

c# - 如何在不发出其他请求的情况下在编辑操作中使用 ViewModel?

c# - 下载视频时,YoutubeExtractor上的System.Net.WebException

c# - 如何使用线程循环proxyList和accountList,以便在不禁止代理的情况下继续测试帐户?

c# - 如何根据另一行数据 GridView 汇总一行?

c# - 如何使用 lambda 表达式更新属性?