首先,說一下我們的範例目的--一讓資料庫輸出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
內容如下:
SELECT TOP 100 topic,name,time
FROM bbs where [order]=1 ORDER BY [Time] DESC
FOR XML AUTO
在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來使用了。