Да, это можно сделать довольно легко. Вы можете сделать это с нуля или использовать существующие инструменты для этого. В принципе, вам нужно прочитать данные из CSV в DataTable или пользовательский объект. Затем, в свою очередь, вы можете записать эту таблицу или объект в базу данных.
Я рекомендую вам взглянуть на CSV Helper - https://github.com/JoshClose/CsvHelper
CSV Помощник должен делать все, что вам нужно сделать, за исключением записи в InterBase. Старайтесь не изобретать колесо, если только этого не потребуется.
Но, если вы действительно хотите написать свое собственное с нуля, вы можете это сделать. Обычно мой первый шаг - загрузить данные из файла CSV в DataTable. Затем я создаю пользовательские объекты и строю их список. Это связано с тем, что у меня обычно уже есть способ записи пользовательских объектов в базу данных/конечный пункт назначения.
Отображение столбцов из DataTable на ваш объект не должно быть затруднительным, поскольку вы можете ссылаться на столбец по его названию. Вот очень простой пример:
class Program
{
static void Main(string[] args)
{
DataTable CarsImportedFromFile = new DataTable();
// load data in from CSV
List<Car> Cars = new List<Car>();
foreach (DataRow CurrentRow in CarsImportedFromFile.Rows)
{
Car MyCar = new Car();
MyCar.Model = CurrentRow["Model"].ToString();
MyCar.Color = CurrentRow["Color"].ToString();
Cars.Add(MyCar);
}
}
}
class Car
{
public string Model { get; set; }
public string Color { get; set; }
}
Существует множество способов сделать все это. Если вы ищете SO, вы можете найти хорошие вопросы по динамическому сопоставлению, преобразованию данных в объекты, импортированию CSV и т. Д.
Будет ли имя столбца в исходном файле ** всегда совпадать с именами столбцов в таблице адресатов? –
Да, они будут. – MarinaS