void IDisplayCameraInfo.DisplayCameraInfo(DataGridView dataGridView)
        {
            int              dbNum               = 0;
            string           serialNumber        = "camera1";
            RedisDBConnector db0                 = RedisDBConnector.GetInstance(dbNum);
            DataTable        cameraInfoDataTable = new DataTable();

            cameraInfoDataTable.Columns.Add("SerialNumber");
            cameraInfoDataTable.Columns.Add("PhysicalLocation");
            string cameraInfoStringGetFromDB = db0.Get(serialNumber);

            if (cameraInfoStringGetFromDB == null)
            {
                CameraInfo initialCameraInfo = new CameraInfo()
                {
                    SerialNumber = serialNumber
                };
                string jsonStringOfCameraInfo    = JsonConvert.SerializeObject(initialCameraInfo);
                bool   resultOfAddOrUpdateDBData = false;
                resultOfAddOrUpdateDBData = db0.AddOrUpdate(initialCameraInfo.SerialNumber, jsonStringOfCameraInfo);
            }
            cameraInfoStringGetFromDB = db0.Get(serialNumber);
            CameraInfo cameraInfoGetFromDB = JsonConvert.DeserializeObject <CameraInfo>(cameraInfoStringGetFromDB);
            //dataGridView.Rows.Add(cameraInfoGetFromDB.SerialNumber, cameraInfoGetFromDB.PhysicalLocation);
            DataRow cameraInfoDataRow = cameraInfoDataTable.NewRow();

            string[] dataRowDatas = { cameraInfoGetFromDB.SerialNumber, cameraInfoGetFromDB.PhysicalLocation };
            cameraInfoDataRow.ItemArray = dataRowDatas;
            cameraInfoDataTable.Rows.Add(cameraInfoDataRow);
            cameraInfoDataTable.AcceptChanges();
            dataGridView.DataSource = cameraInfoDataTable;

            int totalRowHeight = dataGridView.ColumnHeadersHeight;

            foreach (DataGridViewRow row in dataGridView.Rows)
            {
                totalRowHeight += row.Height;
            }
            dataGridView.Height = totalRowHeight - 5;

            dataGridView.Columns["SerialNumber"].ReadOnly = true;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int dbNum            = 0;
            RedisDBConnector db0 = RedisDBConnector.GetInstance(dbNum);
            DataTable        cameraInfoDataTable = (DataTable)this.dataGridView1.DataSource;

            foreach (DataRow dataRow in cameraInfoDataTable.Rows)
            {
                if (dataRow.RowState == DataRowState.Modified)
                {
                    CameraInfo initialCameraInfo = new CameraInfo()
                    {
                        SerialNumber     = (string)dataRow["SerialNumber"],
                        PhysicalLocation = (string)dataRow["PhysicalLocation"]
                    };
                    string jsonStringOfCameraInfo    = JsonConvert.SerializeObject(initialCameraInfo);
                    bool   resultOfAddOrUpdateDBData = false;
                    resultOfAddOrUpdateDBData = db0.AddOrUpdate("camera1", jsonStringOfCameraInfo);
                }
            }
            cameraInfoDataTable.AcceptChanges();
        }