更新Azure SQL数据库表后如何刷新网页

时间:2019-02-14 02:23:33

标签: asp.net ajax azure azure-sql-database azure-web-sites

我正在使用C#ASP.NET开发Web应用程序,单击提交按钮后,它将从Azure Sql数据库检索数据。

protected void BtnSubmit_Click(object sender, EventArgs e)
        {
                string connStr = "Server=*******";
                SqlConnection conn = new SqlConnection(connStr);
                conn.Open();

                string strQuery = "select **** from myTable";
                SqlCommand sqlcmd = new SqlCommand(strQuery, conn);
                Label1.Text = sqlcmd.ExecuteScalar().ToString();
                conn.close();
        }

现在,我正在尝试使用Azure Sql数据库表中的最新上载记录自动更新wabPage label.text,而无需使用时钟控制,该如何实现?

1 个答案:

答案 0 :(得分:3)

这是您可以做的,功能非常简单。例如,我正在使用一个控制台客户端和一个Web应用程序。

这是我的SignalR服务器代码:

 class Program
    {
        static void Main(string[] args)
        {
            string url = "http://localhost:8081/";

            var server = new Server(url);
            server.MapHubs();
            
            server.Start();
            Console.WriteLine("SignalR server started at " + url);

            while (true)
            {
                ConsoleKeyInfo ki = Console.ReadKey(true);
                if (ki.Key == ConsoleKey.X)
                {
                    break;
                }
            }
        }

        public class CollectionHub : Hub
        {
            public void Subscribe(string groupName)
            {
                Groups.Add(Context.ConnectionId, groupName);
                Console.WriteLine("Subscribed to: " + collectionName);
            }

            public Task Unsubscribe(string groupName)
            {
                return Clients[groupName].leave(Context.ConnectionId);
            }

            public void Publish(string message, string groupName)
            {
                Clients[groupName].flush("SignalR Processed: " + message);
            }
        }

对于收听结束,我们需要执行以下操作。

1)使用SignalR服务器正在侦听的URL创建一个集线器连接。

2)创建一个代理类来调用我们在服务器中创建的CollectionHub中的函数。

3)注册事件和回调,以便Server可以调用客户端并通知更新。您可以将事件名称命名为“刷新”,如果您记得服务器在发布功能中调用了此功能以将消息更新给客户端。

4)启动集线器,然后等待完成连接。

5)我们可以通过传递函数名称和参数来使用Invoke方法调用Hub中声明的任何公共方法。

下面是在Web客户端中获取更新的代码示例

 <script type="text/javascript">
           $(function () {
               var connection = $.hubConnection('http://localhost:8081/');
               proxy = connection.createProxy('collectionhub')
               connection.start()
                    .done(function () {
                        proxy.invoke('subscribe', 'Product');
                        $('#messages').append('<li>invoked subscribe</li>');
                    })
                    .fail(function () { alert("Could not Connect!"); });


               proxy.on('flush', function (msg) {
                   $('#messages').append('<li>' + msg + '</li>');
               });

               $("#broadcast").click(function () {
                   proxy.invoke('Publish', $("#dataToSend").val(), 'Product');
               });

           });
    </script>

您可以从Nuget安装SignalR Javascript客户端,它将安装所有必需的js文件。

如果您需要其他帮助,请告诉我。