我想将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;
}
但它只在我运行
时更新DataViewGriddaTab.Fill(dTable);
所以我可以从这里有两个选项:1)让它正常工作(这就是为什么我需要你的帮助)或2)放一个计时器并以某个时间间隔运行daTab.Fill(dTable);
。我特别关注选项1)。所以,我感谢任何帮助。
答案 0 :(得分:2)
听起来你正在使用SQL Server。如果是这样,请查看SqlDependency类。您可以为此类的OnChange事件创建委托,并收到更改通知,然后您可以将这些更改传播到GridView。以下是一些关于该主题的精彩文章: https://msdn.microsoft.com/en-us/library/62xk7953(v=vs.110).aspx