Hello All,
Thanks in advance. After enough googling and try and error I decided to write very simple question here.
I am working on TASK where I want to display vehicle numbers on display like railway station where LED screens shows Vehicle Numbers.
I have designed Windows Form. with one gridview. In this form I have added only one gridview.
According to requirement I have to show only 3 records at a time.
My problem is first three records are getting displayed well after that gridview is not adding next three records.
Please check below code of load vehicle data method :I called this method from timer tick event after 30 seconds. I have also used process status variable which checks that process is in progress or not. If process is not in progress then only timer calls that load vehicle data method
private void loadVehicleNumbers()
{
try
{
processStatus = 1;
DataTable dtVehicleData = ApplicationManager.DAL.getVehicleDetailsWhoseCommissioningIsNotDone();
MessageBox.Show("Number of vehicles : "+dtVehicleData.Rows.Count);
if (dtVehicleData.Rows.Count > 0)
{
this.dgv_vehicleNumbers.Rows.Clear();
int j = 0;
for (int i = 0; i < dtVehicleData.Rows.Count; i++)
{
if (j == 3)
{
Thread.Sleep(10000);
j = 0;
dgv_vehicleNumbers.Rows.Clear();
dgv_vehicleNumbers.Update();
dgv_vehicleNumbers.Refresh();
}
string vehicleNumber = dtVehicleData.Rows[i]["VEHICLE_NUMBER"].ToString();
string EntryNumber = dtVehicleData.Rows[i]["Entry_NUMBER"].ToString();
string drivingLicensenumber = dtVehicleData.Rows[i]["Driver_NUMBER"].ToString();
string driver_Name = dtVehicleData.Rows[i]["DRIVER_NAME"].ToString();
int temp = i + 1;
string[] row1 = new string[] { "" + temp, vehicleNumber, driver_Name };
this.dgv_vehicleNumbers.Rows.Add(row1);
j++;
dgv_vehicleNumbers.Update();
dgv_vehicleNumbers.Refresh();
if (i == (dtVehicleData.Rows.Count - 1))
{
Thread.Sleep(10000);
}
}
}
else
{
Thread.Sleep(10000);
}
processStatus = 0;
}
catch (Exception ex)
{
frmHZLHome.WriteErrorLog(DateTime.Now.ToString("dd/MMM/yyyy HH:mm:ss") + ",Driver Room LED Display ," + ex.Message);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
if (processStatus == 0)
{
MessageBox.Show("Loading vehicles");
loadVehicleNumbers();
}
}