Импортируйте файл Excel и сравните две таблицы для дублирования номеров - PullRequest
0 голосов
/ 25 октября 2018

Итак, у меня есть этот проект, над которым я работаю

По сути, у меня есть файлы Excel, в которых есть только «регистрационный номер» работодателя (первичный ключ), который я должен загрузить в базу данных, НО иногда работодатель работодателярегистрационные номера дублируются ошибками, которые вызывают проблемы, когда кто-то пытается загрузить этот файл в базу данных

Что мне нужно сделать, загрузить файл Excel (создать новую таблицу, я думаю) после того, как я нажму на кнопку загрузки, это должно датьмне, сколько регистрационных номеров работодателей содержится в файле excel (рассчитать строки) и сколько регистрационных номеров работодателей дублируется (сравнение исходной таблицы с новой таблицей и поиск, есть ли дубликаты), и сколько недубликатов

проблема, я понятия не имею, как это сделать

что я использую: c # / asp.net - структура сущностей - Visual Studio 2012 - SQL Server 2012

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Я действительно предлагаю вам сделать поток для этого. как создать поток данных?
с SSIS.
Если вам обычно приходится импортировать файлы в базу данных, используйте SSIS, чтобы вы могли обрабатывать все ошибки.

В SSIS вы можете иметь источник Excel и назначение OLEDB для импорта данных.затем вы можете обрабатывать ошибки и импортировать их в другую таблицу.
Таким образом, нет необходимости объединять таблицы и делать все эти вещи для их сравнения.
SSIS совсем не сложно использовать

0 голосов
/ 25 октября 2018

Я думаю, что сначала вы должны прочитать файл Excel из любой библиотеки, которую хотите (например, посмотрите это примеры ) и перед отправкой в ​​базу данных изменить ее на таблицу данных или список в ОЗУ.

, тогда вы должны найти дубликаты значений, которые вводятся пользователем неправильно с помощью Linq или другими способами.например:

var duplicateKeys = list.GroupBy(x => x)
                    .Where(group => group.Count() > 1)
                    .Select(group => group.Key);

в конце вы можете отправить свои уникальные данные в базу данных.

...