【问题标题】:call clientside function after sqldependency changesql依赖改变后调用客户端函数
【发布时间】:2013-10-23 14:20:26
【问题描述】:

我正在使用 SqlDependency 来监视特定 db 表上的更改。 触发更改事件后,我需要调用 javascript 事件!任何的想法 ? 这段代码在我的asp.net页面代码后面

    public void StartTasksMonitor()
    {
        var con = new SqlConnection { ConnectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString };

            if (con.State== System.Data.ConnectionState.Closed)
            {
                con.Open();
            }
            var cmd = new SqlCommand { CommandText = @"SELECT Id
      ,AssignedBy
      ,DateAssigned
      ,AssignedTo
      ,Title
      ,Description
      ,Completed
      ,DateDue
      ,Deleted
      ,DateDeleted
  FROM dbo.Tasks", Connection = con, Notification = null };

            SqlDependency dependency = new SqlDependency(cmd);
            SqlDataReader reader = cmd.ExecuteReader();
            con.Close();
            dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);


    }

    void dependency_OnChange(object sender, SqlNotificationEventArgs e)
    {
        if (e.Type == SqlNotificationType.Change)
        {
            // Have to remove this as it only work's once
            SqlDependency sqlDep = sender as SqlDependency;
            sqlDep.OnChange -= dependency_OnChange;

            // Resetup Dependecy
            StartTasksMonitor();
            string clientFunc = @"alert('test')";

            ScriptManager.RegisterStartupScript(this, GetType(), "alert", clientFunc , true);


        }

    }

RegisterStartupScript 仅在回发发生时才起作用。这里没有回发。整个事情的主要目的是避免回发:)

【问题讨论】:

  • 那么你应该在javascript中添加一个标签。但我认为这更倾向于 Jquery,但不要引用我我是 c# 的人。

标签: c# javascript asp.net postback sqldependency


【解决方案1】:

使用 SignalR 解决了它:) SignalR + SQLDependency 是一个绝妙的秘诀:) 快乐编码

【讨论】:

  • 干得好,我打算建议使用 SignalR
猜你喜欢
  • 1970-01-01
  • 2016-08-11
  • 2016-06-27
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 2016-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多