Pobieranie danych bazy bez odswieżania

0

Cześć napisałem stronę która zapisuje dane do bazy usuwają itd oraz aplikację desktopową która wyświetla na mapie użytkowników z jakiego są kraju:
Problem jest taki ze kiedy mam włącząną apliakacje desktopową i w tym czasie ktoś się rejestruje to aplikacja nie pokazuje prawidłowo bez tego zarejestrowanego użytkownika :/
Tak wygląda kod która wyświetla dane na mapie w aplikacji desktopowej

           List<User> users = new List<User>();
            Dictionary<string, double> keyValues = new Dictionary<string, double>();

            string ConnectionString = @"Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=WorkCorp;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";

            using (SqlConnection sqlConn = new SqlConnection(ConnectionString))
            {
                using (SqlCommand sqlComm = new SqlCommand("SELECT * FROM  AspNetUsers", sqlConn))
                {
                    if (sqlComm.Connection.State == System.Data.ConnectionState.Closed)
                        sqlComm.Connection.Open();
                    SqlDataReader sqlRd = sqlComm.ExecuteReader();

                    //Your username column must be unique
                    while (sqlRd.Read())
                    {

                        string userCountry = sqlRd["Country"].ToString();

                        if(keyValues.ContainsKey(userCountry) == false)
                        {
                            keyValues.Add(userCountry, 1);
                        }
                        else
                        {
                            keyValues[userCountry] += 1;
                        }
                    }
                }
            }

            LiveCharts.WinForms.GeoMap geoMap = new LiveCharts.WinForms.GeoMap();


            geoMap.HeatMap = keyValues;

            geoMap.Source = $"{Application.StartupPath}\\World.xml";
            this.Controls.Add(geoMap);

            geoMap.Dock = DockStyle.Fill;
0

Zrób sobie timer w którym będziesz sprawdzał liczbę rekordów i maksymalną wartość id rekordów.
Niech zmiana którejś wartości wymusza odświeżenie.

ps. Popraw ten post, bo aż się coś robi czytając go,,,

0

Masz problem z tym z czym sam ostatnio się borykałem (i jeszcze ostatecznie tego nie rozwiązałem). Zainteresuj się SqlDependency i eventami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1