我想将 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/