Example #1
0
        public static IEnumerable <T> LoadFromFile <T>(string fullFileName, GetObjectFromReader <T> getObjectFromReaderFunc, string sheetNameFirst = "")
        {
            string          conString = FormatXlsConnectionString(fullFileName);
            IEnumerable <T> result    = null;

            using (var con = new System.Data.OleDb.OleDbConnection(conString))
            {
                using (var cmd = new System.Data.OleDb.OleDbCommand())
                {
                    cmd.Connection = con;

                    if (string.IsNullOrEmpty(sheetNameFirst))
                    {
                        con.Open();

                        var dtExcelSchema = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                        sheetNameFirst = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();

                        con.Close();
                    }

                    cmd.CommandType = CommandType.TableDirect;
                    cmd.CommandText = sheetNameFirst;

                    con.Open();
                    using (var reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                    {
                        if (reader != null)
                        {
                            result = GetObjectListFromReader <T>(reader, getObjectFromReaderFunc);
                        }
                    }
                }
            }
            return(result);
        }
Example #2
0
        private static IEnumerable <T> GetObjectListFromReader <T>(IDataReader reader, GetObjectFromReader <T> getObjectFromReaderFunc)
        {
            var result = new List <T>();

            while (reader.Read())
            {
                var s = getObjectFromReaderFunc(reader);

                if (s != null)
                {
                    result.Add(s);
                }
            }
            return(result);
        }