Импорт XML-файла в базу данных SQL server

#c# #xml #sql-server-2008 #import

#c# #xml #sql-server-2008 #импорт

Вопрос:

Как мне импортировать XML-файл в базу данных SQL Server, используя C # и .NET в приложении Windows?

Имя таблицы и имена столбцов SQL Server должны создаваться автоматически (я где-то видел, что они явно сопоставляли каждый столбец XML-таблицы с уже созданными столбцами таблицы SQL).

Ценю вашу помощь.

Сэм.

Комментарии:

1. Это будет зависеть от вашей структуры файла XML. Это простой или сложный вариант? В зависимости от сложности вам может потребоваться добавить код для сопоставления.

2. Можете ли вы показать нам один из ваших XML-файлов и более подробно объяснить, как его нужно импортировать?

Ответ №1:

Я вроде как думаю, что это два вопроса. Таким образом, на этот вопрос можно получить два ответа.

1) Вам нужно будет разобрать имена узлов, чтобы создать имена столбцов. В зависимости от того, насколько «глубоким» является ваш XML, для этого может потребоваться несколько таблиц. Затем вы подключаетесь к своей базе данных и запускаете инструкции sql с помощью кода ( SqlConnection и SqlCommand объектов) для создания таблиц с соответствующими столбцами. ( CREATE TABLE Blah COLUMNS Bleh , например). Существует также специфичный для SQL API (я думаю), название которого я не могу вспомнить, который позволит вам сделать это немного более объектно-ориентированным способом. Суть та же: упорядочьте имена таблиц и столбцов, создайте свои таблицы с соответствующими столбцами.

2) Затем у вас есть пара вариантов — лучшим, вероятно, было бы маршалировать наборы данных из XML (существует множество примеров), а затем использовать XML Bulk Insert для загрузки всего набора и caboodle в SQL сразу.

Однако позвольте мне просто сказать, что это действительно уродливое решение. Службы службы безопасности, вероятно, смогли бы сделать то же самое с большей легкостью, если это возможно.