public static List<BatchFileData> LoadAndCorrectData(string databasePath, DBAccessData accessData)
 {
     List<DBRecord> records = ReadDataBase(databasePath, accessData);
     return CombineRecordsWithSameFile(records);
 }
        private static List<DBRecord> ReadDataBase(string databasePath, DBAccessData accessData)
        {
            string accessString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + databasePath;
            OleDbConnection connection = new OleDbConnection(accessString);
            connection.Open();

            OleDbCommand accessCommand = new OleDbCommand(accessData.sql, connection);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(accessCommand);

            connection.Close();

            DataSet dataSet = new DataSet();
            dataAdapter.Fill(dataSet, accessData.tableName);

            DataTable table = dataSet.Tables[accessData.tableName];
            List<DBRecord> records = new List<DBRecord>();

            if (!table.Columns.Contains(accessData.addressFieldName))
                Console.WriteLine($"The table has no '{accessData.addressFieldName}' field.");

            if (!table.Columns.Contains(accessData.textFieldName))
                Console.WriteLine($"The table has no '{accessData.textFieldName}' field.");

            if (!table.Columns.Contains(accessData.sortFieldName))
                Console.WriteLine($"The table has no '{accessData.sortFieldName}' field.");

            foreach (DataRow row in table.Rows)
            {
                string address = "";
                if (table.Columns.Contains(accessData.addressFieldName))
                    address = ExtractAddress(Convert.ToString(row[accessData.addressFieldName]));

                string text = "";
                if (table.Columns.Contains(accessData.textFieldName))
                    text = Convert.ToString(row[accessData.textFieldName]);

                string sortElement = "";
                if (table.Columns.Contains(accessData.sortFieldName))
                    sortElement = Convert.ToString(row[accessData.sortFieldName]);

                records.Add(new DBRecord(address, text, sortElement));
            }

            return records;
        }