private void LoadDataFromExcelWind(string fileLoc, string sheetname, ref List <APData> list, string stationID, int year, int month)
        {
            String sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                                       "Data Source=" + fileLoc + ";" +
                                       "Extended Properties=Excel 8.0;";

            OleDbConnection objConn = new OleDbConnection(sConnectionString);

            try
            {
                // Create connection string variable. Modify the "Data Source"
                // parameter as appropriate for your environment.


                // Create connection object by using the preceding connection string.

                // Open connection with the database.
                objConn.Open();

                // The code to follow uses a SQL SELECT command to display the data from the worksheet.

                // Create new OleDbCommand to return data from worksheet.
                OleDbCommand objCmdSelect = new OleDbCommand("Select * from [" + sheetname + "$]", objConn);

                // Create new OleDbDataAdapter that is used to build a DataSet
                // based on the preceding SQL SELECT statement.
                OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

                // Pass the Select command to the adapter.
                objAdapter1.SelectCommand = objCmdSelect;

                // Create new DataSet to hold information from the worksheet.
                DataSet objDataset1 = new DataSet();

                // Fill the DataSet with the information from the worksheet.
                objAdapter1.Fill(objDataset1, "XLData");

                // Bind data to DataGrid control.

                //  dataGridView1.DataSource = objDataset1.Tables[0].DefaultView;

                //List<ApplicationQualification> list = new List<ApplicationQualification>();
                var s = objDataset1.Tables[0].AsEnumerable();
                foreach (var a in s)
                {
                    //ApplicationQualification ap = new ApplicationQualification();

                    if (!string.IsNullOrEmpty(a.ItemArray[0].ToString().Trim()))
                    {
                        int tryInt;

                        if (int.TryParse(a.ItemArray[0].ToString().Trim(), out tryInt))
                        {
                            for (int i = 1, j = 1; i <= 24; i++, j++)
                            {
                                APData l = new APData();
                                l.Year  = year;
                                l.Month = month;
                                l.Day   = int.Parse(a.ItemArray[0].ToString().Trim());
                                l.Hour  = i;

                                l.DataVal2  = a.ItemArray[j].ToString().Trim();
                                l.stationID = stationID;

                                float val;
                                if (float.TryParse(a.ItemArray[(++j)].ToString().Trim(), out val))
                                {
                                    l.DataVal = val;
                                }
                                else
                                {
                                    l.DataVal = null;
                                }

                                list.Add(l);
                            }
                            int day = int.Parse(a.ItemArray[0].ToString().Trim());

                            APDataCombined cl    = Dailylist.Where(x => x.Year == year && x.Month == month && x.Day == day && x.stationID == stationID).FirstOrDefault();
                            bool           isNew = false;

                            if (cl == null)
                            {
                                cl           = new APDataCombined();
                                cl.Year      = year;
                                cl.Month     = month;
                                cl.Day       = day;
                                cl.stationID = stationID;
                                isNew        = true;
                            }
                            float val49;
                            if (float.TryParse(a.ItemArray[49].ToString().Trim(), out val49))
                            {
                                cl.WindSpeedVal = val49;
                            }
                            else
                            {
                                cl.WindSpeedVal = null;
                            }


                            if (isNew)
                            {
                                Dailylist.Add(cl);
                            }
                        }
                    }
                }


                // Clean up objects.
                objConn.Close();
            }
            catch (Exception ex)
            {
                File.AppendAllText("log.txt", Environment.NewLine + "Exception: " + DateTime.Now.ToString() + "#sheetname: " + sheetname + "#stationID: " + stationID + "#year: " + year + "#month" + month + "#Exception Text: " + ex.Message);
                objConn.Close();
            }

            //WriteToExcelApplicantQualification(list);
        }
        private void LoadDataFromExcel(string fileLoc, string sheetname, ref List <APData> list, string stationID, int year, int month)
        {
            String sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                                       "Data Source=" + fileLoc + ";" +
                                       "Extended Properties=Excel 8.0;";

            OleDbConnection objConn = new OleDbConnection(sConnectionString);

            try
            {
                // Open connection with the database.
                objConn.Open();

                // The code to follow uses a SQL SELECT command to display the data from the worksheet.

                // Create new OleDbCommand to return data from worksheet.
                OleDbCommand objCmdSelect = new OleDbCommand("Select * from [" + sheetname + "$]", objConn);

                // Create new OleDbDataAdapter that is used to build a DataSet
                // based on the preceding SQL SELECT statement.
                OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

                // Pass the Select command to the adapter.
                objAdapter1.SelectCommand = objCmdSelect;

                // Create new DataSet to hold information from the worksheet.
                DataSet objDataset1 = new DataSet();

                // Fill the DataSet with the information from the worksheet.
                objAdapter1.Fill(objDataset1, "XLData");

                // Bind data to DataGrid control.

                //  dataGridView1.DataSource = objDataset1.Tables[0].DefaultView;

                //List<ApplicationQualification> list = new List<ApplicationQualification>();
                var s = objDataset1.Tables[0].AsEnumerable();
                foreach (var a in s)
                {
                    //ApplicationQualification ap = new ApplicationQualification();

                    if (!string.IsNullOrEmpty(a.ItemArray[0].ToString().Trim()))
                    {
                        int tryInt;

                        if (int.TryParse(a.ItemArray[0].ToString().Trim(), out tryInt))
                        {
                            for (int i = 1; i <= 24; i++)
                            {
                                APData l = new APData();
                                l.Year  = year;
                                l.Month = month;
                                l.Day   = int.Parse(a.ItemArray[0].ToString().Trim());
                                l.Hour  = i;
                                float val;
                                if (float.TryParse(a.ItemArray[i].ToString().Trim(), out val))
                                {
                                    l.DataVal = val;
                                }
                                else
                                {
                                    l.DataVal = null;
                                }

                                l.stationID = stationID;

                                list.Add(l);
                            }
                            int day = int.Parse(a.ItemArray[0].ToString().Trim());

                            APDataCombined cl    = Dailylist.Where(x => x.Year == year && x.Month == month && x.Day == day && x.stationID == stationID).FirstOrDefault();
                            bool           isNew = false;
                            if (cl == null)
                            {
                                cl           = new APDataCombined();
                                cl.Year      = year;
                                cl.Month     = month;
                                cl.Day       = day;
                                cl.stationID = stationID;
                                isNew        = true;
                            }
                            float?nulableVal = null;
                            float val25;
                            if (float.TryParse(a.ItemArray[25].ToString().Trim(), out val25))
                            {
                                nulableVal = val25;
                            }

                            switch (sheetname)
                            {
                            case "CO Hourly": { cl.COVal = nulableVal; break; }

                            case "CH4 Hourly": { cl.CH4Val = nulableVal; break; }

                            case "NmHC Hourly": { cl.NmHCVal = nulableVal; break; }

                            case "THC Hourly": { cl.THCVal = nulableVal; break; }

                            case "O3 Hourly": { cl.O3Val = nulableVal; break; }

                            case "PM10 Hourly": { cl.PM10Val = nulableVal; break; }

                            case "SO2 Hourly": { cl.SO2Val = nulableVal; break; }

                            case "NOx Hourly": { cl.NOxVal = nulableVal; break; }

                            case "NO Hourly": { cl.NOVal = nulableVal; break; }

                            case "NO2 Hourly": { cl.NO2Val = nulableVal; break; }

                            case "TotalAPI Hourly": { cl.APIVal = nulableVal; break; }

                            case "AmbientTemp Hourly": { cl.AmbTempVal = nulableVal; break; }

                            case "Humidity Hourly": { cl.HumidityVal = nulableVal; break; }
                            }
                            if (isNew)
                            {
                                Dailylist.Add(cl);
                            }
                        }
                    }
                }


                // Clean up objects.
                objConn.Close();
            }
            catch (Exception ex)
            {
                objConn.Close();
                File.AppendAllText("log.txt", Environment.NewLine + "Exception: " + DateTime.Now.ToString() + "#sheetname: " + sheetname + "#stationID: " + stationID + "#year: " + year + "#month" + month + "#Exception Text: " + ex.Message);
            }

            //WriteToExcelApplicantQualification(list);
        }