首页 > 数据库技术 > 详细

监听sqlserver中表发生变化,更新程序缓存

时间:2021-05-15 19:26:39      阅读:23      评论:0      收藏:0      [点我收藏+]
 class Program
    {
        static string connectionStr = "Data Source=.;Initial Catalog=Test;Integrated Security=True";
        static void Main(string[] args)
        {
            SqlDependency.Start(connectionStr);//传入连接字符串,启动基于数据库的监听
            UpdateGrid();
            Console.Read();
            SqlDependency.Stop(connectionStr);
        }

        private static void UpdateGrid()
        {
            using (SqlConnection connection = new SqlConnection(connectionStr))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand("SELECT id,name FROM [dbo].[User]", connection))
                {
                    command.CommandType = CommandType.Text;
                    SqlDependency dependency = new SqlDependency(command);
                    dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);
                    using (SqlDataReader sdr = command.ExecuteReader())
                    {
                        Console.WriteLine();
                        while (sdr.Read())
                        {
                            Console.WriteLine("ID:{0}\t数据:{1}\t", sdr["id"].ToString(), sdr["name"].ToString());
                        }
                        sdr.Close();
                    }
                }
            }
        }
        private static void dependency_OnChange(object sender, SqlNotificationEventArgs e)
        {
            if (e.Type == SqlNotificationType.Change) //只有数据发生变化时,才重新获取并数据
            {
                UpdateGrid();
            }
        }

    }

 

监听sqlserver中表发生变化,更新程序缓存

原文:https://www.cnblogs.com/James-net/p/14771448.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!