Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将DataGridView绑定到数据库中的表_C#_Datagridview_Bindingsource_Mdf - Fatal编程技术网

C# 将DataGridView绑定到数据库中的表

C# 将DataGridView绑定到数据库中的表,c#,datagridview,bindingsource,mdf,C#,Datagridview,Bindingsource,Mdf,我想将DataGridView绑定到数据库中的一个表。我已经找到了一些关于这个的话题,但我无法让它发挥作用。也许我遗漏了什么 我正在构建一个“监视器”,希望在其中查看特定表的任何数据库更改。因此,在将数据加载到DataGridView之后,该特定表中的任何更改都应该传播到DataGridView 看看我做了什么: SqlDataAdapter daTab; DataTable dTable; private void button1_Click(object sende

我想将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)。因此,我非常感谢您提供的任何帮助。

听起来您正在使用SQL Server。如果是这样,请查看SqlDependency类。您可以为此类的OnChange事件创建一个委托,并收到更改通知,然后将更改传播到GridView。以下是关于该主题的一篇好文章,并附有一些示例:

谢谢!!我创建了
SqlDependency
,但现在我遇到了SQLServerServiceBroker问题。我试图做一个
alterdatabasetempsetenable\u代理但它在数据库字中给出了错误。看起来SQLServerCompact不支持
ALTERDATABASE
。听起来,在设置enable_broker时,您需要某种独占锁。不知道这是不是你的问题?这是另一个用户的enable_broker问题,但奇怪的是,您的数据库word本身出现了错误。