首先,說一下我們的例子目的--一讓數據庫輸出XML,並且在.Net體系下調用出來。
這個系統的數據層是用SQL Server數據庫,中間層就用SQL自帶的工具“在 IIS 中配置SQL XML 支持”實現就可以了。好的,現在我們開始來做了,首先配置讓SQL 輸出 XML :
這個東西聽起來似乎有些神秘,其實就是在我們普通的查詢語句後邊增加:FOR XML AUTO 就可以了。
舉一個例子:
SELECT TOP 100 topic,name,time
FROM bbs where [order]=1 ORDER BY [Time] DESC
FOR XML AUTO
這條語句在SQL的查詢分析器裡邊執行的結果,大家會發現:輸出的已經不是我們傳統上概念的表格了,是幾排很長的字符串,內容就是我們所需的XML代碼。
這樣第一步,讓SQL輸出XML就完成了。
然後開始我們的第2步,讓XML文件可以用web的方式調用
這條語句調試成功之後,大家可以建立一個文件:例如aaa.XML
內容如下:
<ROOT xmlns:sql="urn:schemas-microsoft-com:XML-sql">
<sql:query>
SELECT TOP 100 topic,name,time
FROM bbs where [order]=1 ORDER BY [Time] DESC
FOR XML AUTO
</sql:query>
</ROOT>
在c:\建立一個bbb目錄把他放進去。
中間的部分就是我們傳統的SQL語句,前後封裝的話就是我們通用的一個格式。
把這個文件放到一個隨意的目錄裡邊,然後打開SQL的“在 IIS 中配置 SQL XML 支
持”在需要XML支持的站點建立一個虛擬目錄,名稱就叫做ccc吧,本地路徑自然是我們的c:\bbb了。
然後點安全性--輸入你SQL得用戶名和密碼,然後是數據源,就是你的數據庫位置了默認的數據庫。
然後點設置,選擇允許模板查詢,然後點虛擬名稱,點新建類型是template名稱就叫
ddd吧,對應的文件就是我們的aaa.XML。
然後在IE裡邊打開:http://你的機器名/ccc/ddd
看到什麼了?對,就是你的那個XML的文件在SQL查詢的時候輸出的內容。
什麼沒有輸出?打開你的“Internet 信息服務(IIS)管理器”,選擇“web擴展服
務”,
然後是把“所有未知的ISAP擴展”選擇允許。現在OK了吧?
好的,然後就是我們最關鍵的一步第3步--如何把這個動態生成的XML文件在VS.Net裡邊調用了。
首先我們要建立一個空的非結構化的dataset1,然後在源代碼裡邊在this.dataSet1.Locale = new System.Globalization.CultureInfo("zh-CN");
後邊加一句this.dataSet1.ReadXML("http://你的機器名/ccc/ddd");
恭喜你,你現在已經可以把動態生成的這個XML文件做為一個只讀的dataset來使用了。