2016-05-22 2 views
0

Итак, я создаю систему на базе локальной сети, в которой после того, как PC2 щелкнул обслуженную кнопку в своем документе datagridview (ТОЛЬКО СОСТОЯНИЕ, КОТОРЫЙ НАСТОЯЩИЙ PREPARING ЗНАЧЕНИЕ БУДЕТ ОТОБРАЖЕН В DGV), элемент, который был нажат будет удален из datagrid и обновлен статус базы данных от PREPARING до SERVED.Обновить данныеGridView после обновления с клиентского компьютера

Как я могу сделать это для автоматического обновления моего datagridview до ПК1, когда изменения были внесены в мою базу данных с ПК2 или наоборот?

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

enter image description here

КОД:

public void fillGrid() 
    { 

     cmd = new MySqlCommand("SELECT progressID, receiptNo, time, item, quantity, tableNo FROM tblprogress WHERE status = 'Preparing' ORDER BY time ASC"); 
     cmd.Connection = dbConn; 
     dgvProgress.Rows.Clear(); 
     MySqlDataReader rdr = cmd.ExecuteReader(); 

     while (rdr.Read()) 
     { 
      dgvProgress.Rows.Add(rdr[0], rdr[1], rdr[2], rdr[3], rdr[4], rdr[5]); 
      dgvProgress.ClearSelection(); 

     } 

     rdr.Close(); 
    } 

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
    { 
     if (dgvProgress.Columns[e.ColumnIndex].Name == "Status") 
     { 
      cmd = new MySqlCommand("UPDATE tblprogress SET status = 'Served' WHERE progressID = " + dgvProgress.CurrentRow.Cells["progressID"].Value.ToString() + ""); 
      cmd.Connection = dbConn; 
      cmd.ExecuteNonQuery(); 
      dgvProgress.Rows.RemoveAt(e.RowIndex); 
     } 
    } 

ответ

0

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

Смежные вопросы