Во-первых, давайте поговорим о цели нашего примера — позволить базе данных выводить XML и вызывать его в системе .net.
Уровень данных этой системы использует базу данных SQL-сервера, а средний уровень можно реализовать с помощью инструмента «Настройка поддержки SQL XML в IIS», который поставляется с SQL. Хорошо, теперь мы собираемся это сделать. Во-первых, настройте SQL для вывода XML:
Эта вещь может показаться немного загадочной, но на самом деле она просто добавляет: FOR XML AUTO после нашего обычного оператора запроса.
Приведите пример:
ВЫБЕРИТЕ ТОП-100 тему, имя, время.
FROM bbs, где [order]=1 ORDER BY [Time] DESC
FOR XML AUTO
будет выполнен в анализаторе SQL-запросов, вы обнаружите, что на выходе больше не та таблица, которую мы традиционно представляем, а несколько строк очень длинных строк, а содержимым является нужный нам XML-код.
Таким образом, первым шагом является разрешение SQL выводить XML.
Затем мы начинаем наш второй шаг, чтобы XML-файл можно было вызвать через Интернет.
После успешной отладки вы можете создать файл: например,
содержимое aaa.xml выглядит следующим образом:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:запрос>
ВЫБЕРИТЕ ТОП-100 тему, имя, время
FROM bbs, где [order]=1 ORDER BY [Time] DESC
ДЛЯ XML АВТО
</sql:запрос>
</ROOT>
Создайте каталог bbb в c: и поместите его в него.
Средняя часть — это наш традиционный оператор SQL, а передняя и задняя инкапсуляция — наш общий формат.
Поместите этот файл в произвольный каталог, затем откройте «Настроить поддержку SQL XML в IIS» и создайте на сайте виртуальный каталог, требующий поддержки XML. Назовем его ccc. Локальный путь — это, естественно, наш c:bbb.
Затем нажмите «Безопасность» — введите имя пользователя и пароль SQL, затем «Источник данных», который является местоположением вашей базы данных и базой данных по умолчанию.
Затем нажмите «Настройки», выберите «Разрешить запрос шаблона», затем нажмите «Виртуальное имя», нажмите «Новый тип» и назовите его именем шаблона.
ддд, соответствующий файл — это наш aaa.xml.
Затем откройте его в IE: http://имя вашего компьютера/ccc/ddd
Что ты видел? Да, это вывод содержимого вашего XML-файла во время SQL-запроса.
Что не выводится? Откройте «Диспетчер служб IIS» и выберите «Службы веб-расширений»,
Затем выберите «Все неизвестные расширения ISAP», чтобы разрешить. Сейчас все в порядке?
Хорошо, теперь наступает наш самый важный шаг, шаг 3 — как вызвать этот динамически создаваемый XML-файл в VS.net.
Сначала нам нужно создать пустой неструктурированный набор данных1, а затем в исходном коде this.dataSet1.Locale = new System.Globalization.CultureInfo("zh-CN");
Добавьте this.dataSet1.ReadXml("http://имя вашего компьютера/ccc/ddd");
Поздравляем, теперь вы можете использовать этот динамически создаваемый XML-файл в качестве набора данных, доступного только для чтения.