0

我的大部分经验都与应用程序有关,但我在使用 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 ,但它在运行时会破坏我页面上的所有信号器并且不返回结果。我可能正在做一些我不应该做的事情,所以我想我会问。

4

1 回答 1

0

command.CommandText = "从活动中选择活动页面";

代替

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

于 2014-12-11T10:52:38.907 回答