数据库更改时的生活更新抛出错误

本文关键字:出错 错误 更新 的生活 数据库 | 更新日期: 2024-11-09 00:51:11

我遵循了本指南,我确实设法让它发布我的数据库的值,但是当我更改数据库中的内容时它不会更新页面时。

因此,当我调试通知中心时.cs这 2 行会引发错误。

IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
return context.Clients.All.RecieveNotification(totalNewMessages, totalNewCircles, totalNewJobs, totalNewNotification);

它抛出的错误是:

System.Core 中发生类型为"Microsoft.CSharp.RuntimeBinder.RuntimeBinderException"的异常.dll但未在用户代码中处理

附加信息:类型"System.Threading.Tasks.Task"不能隐式转换为"字符串"

这是发送通知代码:

public string SendNotifications()
{
    using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
    {
        string query = "SELECT NotificationNumber FROM [dbo].[NotificationStatus] WHERE UserID=" + "1";
        connection.Open();
        using (SqlCommand command = new SqlCommand(query, connection))
        {
            try { 
            command.Notification = null;
            DataTable dt = new DataTable();
            SqlDependency dependency = new SqlDependency(command);
            dependency.OnChange += new OnChangeEventHandler(dependency_OnChange);                
            if (connection.State == ConnectionState.Closed)
                connection.Open();
            var reader = command.ExecuteReader();
            dt.Load(reader);
            if (dt.Rows.Count > 0)
            {
                totalNewMessages = Int16.Parse(dt.Rows[0]["NotificationNumber"].ToString());
            }
            connection.Close();
        }
        catch(Exception ex)
        {
            throw;
        }
        }
    }
    IHubContext context = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
    return context.Clients.All.RecieveNotification(totalNewMessages);
}

希望有人能指出出了什么问题。

数据库更改时的生活更新抛出错误

context.Clients.All.RecieveNotification(totalNewMessages)是一个动态方法,其返回类型为Task;这不能转换为字符串,这是您尝试从SendNotifications返回的内容。因此,您需要更改签名,例如:

public Task SendNotifications();
相关文章: