Sql ...

我现在正在使用 SqlDependency 来获取当数据表发生更改时的消息通知。

private void subscribeBroker()
{
    using (var conn = new SqlConnection(connString))
    {
        conn.Open();

        var cmd = new SqlCommand("SELECT text FROM dbo.Test");
        cmd.Connection = conn;

        var dependency = new SqlDependency(cmd);
        dependency.OnChange += dependency_OnChange;
        SqlDependency.Start(connString);

        cmd.ExecuteNonQuery();
    }
}

void dependency_OnChange(object sender, SqlNotificationEventArgs e)
{
    //Do something...
    subscribeBroker();
}

上面代码能够运行,但是有点小问题,
我不能找到一个方法能够使程序知道这个更改是发送在数据表的哪行数据,所以现在我必须读取全部的数据,然后进行比较。有办法直接在通知里面就获取到时哪行数据发生更改了吗,或者有没有别的方法来实现更改通知啊?

原文阅读

"文章为作者独立观点, 不代表老订阅立场"

本站作者

每日荐书

在不完美的世界力求正常——读《公司的坏话》

书名:《公司的坏话》

作者:李天田(脱不花妹妹)

出版社:北京大学出版社

赞助商

广告