#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 сразу.
Однако позвольте мне просто сказать, что это действительно уродливое решение. Службы службы безопасности, вероятно, смогли бы сделать то же самое с большей легкостью, если это возможно.