所以我正在建立一个基于局域网的系统,其中一旦PC2点击其数据网格视图中的服务按钮(只有状态,其中PREPARING
值将显示在DGV中),被点击的项目将被删除从datagrid并将其数据库状态从PREPARING
更新为SERVED
。
如果从PC2对我的数据库进行了更改,我怎样才能将我的datagridview自动刷新到PC1,反之亦然?
请注意我没有使用绑定数据源或任何东西,因为我对此并不熟悉..
CODE:
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 :(得分:0)
您可以将其设置为更改具有时间戳。然后使用计时器并在指定的时间间隔检查您拥有的数据的时间戳是否与数据库中的时间戳相同。如果没有,则从数据库中提取数据并更新datagridviewer