使用SignalR运行SQL查询

时间:2012-07-25 12:20:18

标签: c# signalr

我的大部分经验都是应用程序,我在使用SQL查询时遇到问题。 该网页使用信号器来更新客户端的新信息将由不同的流程控制,但我想要实现的是新连接的客户端将不会与其他已连接的客户端在同一个地方,因此它将更新新客户端正确的信息。我有这个SQL查询,

 public string LoadCurrent()
    {
        SqlConnection con = new SqlConnection();

        SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder();
        bldr.DataSource = @"server\SQLEXPRESS";
        bldr.InitialCatalog = "Signalr_Example";
        bldr.UserID = "zip";
        bldr.Password = "zap";

        con.ConnectionString = bldr.ConnectionString;

            con.Open();

            string currentPage = "";

            using (SqlCommand command = con.CreateCommand())
            {
                command.CommandText = "SELECT TOP 1 activepage FROM active";

                con.Open();

                command.ExecuteNonQuery();

                SqlDataReader myReader = command.ExecuteReader();

                while (myReader.Read())
                {
                    int _currentpage = myReader.GetOrdinal("activepage");
                    currentPage = myReader.GetString(_currentpage);

                }

            } 

        return currentPage;

    }

我希望在客户端连接时返回

    public Task Connect()
    {
        string html = LoadCurrent();
        _connections.TryAdd(Context.ConnectionId, null);
        //This runs firstview which populates a content div on new clients. 
        Clients[Context.ConnectionId].firstview(html);
        return Clients.tally(_connections.Count.ToString());
    }

虽然这在winapp中有效,但它在运行时会破坏我页面上的所有信号器,并且不会返回结果。我可能正在做一些我不应该做的事情,所以我想我会问。

1 个答案:

答案 0 :(得分:0)

command.CommandText =" SELECT activepage FROM active&#34 ;;

而不是

command.CommandText =" SELECT TOP 1 activepage FROM active";