para actualizar un DataViewGrid cada 5 segundos lo que hago es desde un Timer llamo a la siguiente función:
void ActualizarDatos() {
//DT->Rows->Find
DT = gcnew DataTable();
SDA->Fill(DT);
dgDatos->DataSource = DT;
}
Notas: DT (es un DataTable), SDA (es un SqlDataAdapter) y dgDatos ( es un DataViewGrid)
pero no se si hay una manera mejor, parece un poco chapuzas, sabeis alguna manera mejor de hacerlo.