C # с .net 2.0 с бэкэндом БД SQL Server 2005.
У меня есть несколько XML-файлов, которые содержат данные в соответствии со следующим: структура немного отличается, но выглядит примерно так:
<TankAdvisory>
<WarningType name="Tank Overflow">
<ValidIn>All current tanks</ValidIn>
<Warning>Tank is close to capacity</Warning>
<IssueTime Issue-time="2011-02-11T10:00:00" />
<ValidFrom ValidFrom-time="2011-01-11T13:00:00" />
<ValidTo ValidTo-time="2011-01-11T14:00:00" />
</WarningType>
</TankAdvisory>
У меня есть одна таблица БД, в которой есть все поля, готовые для заполнения.
Когда я использую следующий метод чтения данных из файла XML:
DataSet reportData = new DataSet();
reportData.ReadXml("../File.xml");
Он успешно заполняет набор данных, но с несколькими таблицами. Поэтому, когда я использую SQLBulkCopy, я могу сохранить только одну таблицу следующим образом:
sbc.WriteToServer(reportData.Tables[0]);
Или, если я перебираю все таблицы в наборе данных, добавляя их, он добавляет новую строку в базу данных, когда в действительности все они должны храниться в одной строке.
Тогда, конечно, существует и проблема сопоставления столбцов, я думаю, что, возможно, SQLBulkCopy - неправильный способ сделать это.
Что мне нужно сделать, так это найти быстрый способ передачи данных из этого XML-файла в базу данных под соответствующими столбцами в БД.