Есть действительно хорошая библиотека под названием FileHelpers , которая а) на 100% свободна, б) полностью в C # и может легко импортировать любой текстовый файл - разделенный запятыми, разделенный табуляцией , фиксированной ширины и пр.
У вас не должно возникнуть проблем с использованием этого для загрузки вашего CSV-файла в объекты в памяти и его сохранения в SQL Server с использованием ADO.NET.
В FileHelpers сначала необходимо иметь класс, описывающий ваши данные, например, класс «Клиент» (или что бы вы ни импортировали).
Затем вы можете импортировать файл, используя код примерно так:
FileHelperEngine<Customer> engine = new FileHelperEngine<Customer>();
Customer[] dataLoaded = engine.ReadFile(fileName);
Как только у вас есть массив клиентов, вы можете просто выполнить итерацию по нему и сохранить данные (обычно внутри транзакции), например, с помощью. хранимая процедура или специальный SQL-запрос:
using(TransactionScope ts = new TransactionScope())
{
foreach(Customer c in dataLoadad)
{
SaveCustomer(c);
}
ts.Complete();
}
или вы можете преобразовать клиентский массив в DataTable и использовать SqlBulkCopy, чтобы массово вставить его в базу данных SQL Server - существует множество вариантов!
UPDATE:
У вас есть [DelimitedRecord]
или другой из этих атрибутов в вашем BlackListDevice
классе?