Schooka Ответов: 1

Как я могу постоянно обновлять значение, если оно изменилось в базе данных


Я пытаюсь реализовать статус текущего вошедшего пользователя в приложение WPF. Я могу прочитать из базы данных и установить это значение один раз , но мне нужно, чтобы оно постоянно обновлялось. Так, например, когда пользователь находится в сети, и он меняется на занятого. Значение будет находиться в сети, но как только оно изменится в базе данных на занято , значение также обновится до занято.

например:

connection = new MySqlConnection(connectionString);
  Query = "SELECT status FROM Accounts WHERE username=@username";
  connection = new MySqlConnection(connectionString);

  MySqlCommand command = new MySqlCommand(Query, connection);
  command.CommandType = System.Data.CommandType.Text;
  command.Parameters.AddWithValue("@username", thedesiredusername);
  connection.Open();
  MySqlDataReader dataReader = command.ExecuteReader();

  while (dataReader.Read())
  {
     string userstatus = dataReader.GetString("status");
  }


Это позволит установить значение userstatus один раз. Как я могу заставить его сделать что-то подобное:
connection = new MySqlConnection(connectionString);
Query = "SELECT status FROM Accounts WHERE username=@username";
connection = new MySqlConnection(connectionString);

MySqlCommand command = new MySqlCommand(Query, connection);
command.CommandType = System.Data.CommandType.Text;
command.Parameters.AddWithValue("@username", thedesiredusername);
connection.Open();
MySqlDataReader dataReader = command.ExecuteReader();

while (dataReader.Read())
{
   //keep doing:
   if (userstatus != dataReader.GetString("status"))
   {
     string userstatus = dataReader.GetString("status");
   }

}


Заранее спасибо!

Что я уже пробовал:

я уже пробовал это сделать . Также попробовал пакет TableDependency, но по какой-то причине моя connectionstring не сработала.

saimanisha

как только вы обновляете онлайн, Как вы отображаетесь в интернете, так же, как вы обновляете занятый тоже.
где именно у вас есть сомнения

1 Ответов

Рейтинг:
2

saimanisha

когда пользователь выбирает держать занятым, то сразу же вы пишете код для обновления его в базу данных, а затем переопределяете онлайн с занятостью в пользовательском интерфейсе.
дайте уведомление пользователю через определенное время, хотите ли вы оставаться онлайн или еще заняты..


Schooka

но мне это нужно не только для пользователя, мне это нужно и тогда, когда отображаются друзья : например, допустим, в базе данных есть пользователь под названием beans. у бинза есть друг по имени тест . когда БИНС войдет в систему и пойдет к друзьям, он увидит, что тест находится в сети, но как только тест перейдет в автономный режим, он все равно увидит, что БИНС находится в сети . мне нужно, чтобы он постоянно обновлялся, поэтому всякий раз, когда тест переходит в автономный режим, бобы должны видеть, что тест просто перешел в автономный режим .

saimanisha

посмотреть, установить таймер, установить интервал в 10 сек или как согласно вашему требованию.за каждые несколько сек сделать его обновления .например, когда время истекает, то оно попадает в код, где вы пишете, чтобы получить данные, которые находятся в сети .
этот работает хорошо.если вы думаете, что будут какие-то недостатки, если вы используете это .дайте мне знать.я постараюсь получить новую идею, которая преодолеет эти недостатки.