gpt4 book ai didi

c# - 如何保持 sql 依赖性达到其目的

转载 作者:行者123 更新时间:2023-11-30 18:26:20 25 4
gpt4 key购买 nike

我有一个控制台应用程序。

我想继续关注数据库表中特定列的变化。

我通过互联网阅读,发现 sql 依赖项对我的目的很有用。我开始了解它并执行了以下操作:

  1. 创建一个类(class)。
  2. 在构造函数中,我调用了静态函数 start 并调用了一个具有所有 sql 依赖项设置的函数。

我的问题

当我使用 start 单击 visual studio 2013 运行应用程序时,应用程序运行然后停止。 但是,我需要的是应用程序开始工作并持续关注数据库表中的变化。

你能帮帮我吗?

代码:

这是一个非常非常简单的 c# 代码。

public class MyListener
{
public MyListener()
{
SqlDependency.Start(getConnectionString());
this.listen();
}

private string getConnectionString()
{
return ConfigurationManager.ConnectionStrings["popup"].ConnectionString.ToString();
}
private void listen()
{
string query = "SELECT CallerID FROM TransferToSIP WHERE hasBeenRead = 0";
SqlConnection con = new SqlConnection(getConnectionString());
SqlCommand cmd = new SqlCommand(query, con);
con.Open();
using (cmd)
{
SqlDependency dependency = new SqlDependency(cmd);
dependency.OnChange += new
OnChangeEventHandler(OnDependencyChange);
using (SqlDataReader reader = cmd.ExecuteReader())
{
}
}
}
void OnDependencyChange(object sender, SqlNotificationEventArgs e)
{
Console.WriteLine("Roma");
}
void Termination()
{
SqlDependency.Stop(getConnectionString());
Console.Read();
}

最佳答案

问题在于没有重新订阅。您应该在 OnDependencyChange 中调用 listen 方法。我知道这很奇怪,但它是 SqlDependency 类。

关于c# - 如何保持 sql 依赖性达到其目的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com