幫助C#菜鳥進(jìn)入SQL/XML開發(fā)
發(fā)表時間:2024-06-21 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]XML是個什么玩意?很多朋友都有一大堆的理論知識,但是如何實(shí)際的應(yīng)用到開發(fā)中去似乎還是一個不小的問題。今天給剛剛接觸的初學(xué)者一個小例子,希望可以幫助那些剛剛接觸的朋友快速的理解和使用XML。首先,說一下我們的例子目的--一讓數(shù)據(jù)庫輸出XML,并且在.net體系下調(diào)用出來。這個系統(tǒng)的數(shù)據(jù)層是用SQL...
XML是個什么玩意?很多朋友都有一大堆的理論知識,但是如何實(shí)際的應(yīng)用到開發(fā)中去
似乎還是一個不小的問題。
今天給剛剛接觸的初學(xué)者一個小例子,希望可以幫助那些剛剛接觸的朋友快速的
理解和使用XML。
首先,說一下我們的例子目的--一讓數(shù)據(jù)庫輸出XML,并且在.net體系下調(diào)用出來。
這個系統(tǒng)的數(shù)據(jù)層是用SQL server數(shù)據(jù)庫,中間層就用SQL自帶的工具“在 IIS 中配置SQL XML 支持”實(shí)現(xiàn)就可以了。好的,現(xiàn)在我們開始來做了,首先配置讓SQL 輸出 XML :
這個東西聽起來似乎有些神秘,其實(shí)就是在我們普通的查詢語句后邊增加:FOR XML AUTO 就可以了。
舉一個例子:
SELECT TOP 100 topic,name,time
FROM bbs where [order]=1 ORDER BY [Time] DESC
FOR XML AUTO
這條語句在SQL的查詢分析器里邊執(zhí)行的結(jié)果,大家會發(fā)現(xiàn):輸出的已經(jīng)不是我們傳統(tǒng)上概念的表格了,是幾排很長的字符串,內(nèi)容就是我們所需的XML代碼。
這樣第一步,讓SQL輸出XML就完成了。
然后開始我們的第2步,讓XML文件可以用web的方式調(diào)用
這條語句調(diào)試成功之后,大家可以建立一個文件:例如aaa.xml
內(nèi)容如下:
<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目錄把他放進(jìn)去。
中間的部分就是我們傳統(tǒng)的SQL語句,前后封裝的話就是我們通用的一個格式。
把這個文件放到一個隨意的目錄里邊,然后打開SQL的“在 IIS 中配置 SQL XML 支
持”在需要XML支持的站點(diǎn)建立一個虛擬目錄,名稱就叫做ccc吧,本地路徑自然是我們的c:\bbb了。
然后點(diǎn)安全性--輸入你SQL得用戶名和密碼,然后是數(shù)據(jù)源,就是你的數(shù)據(jù)庫位置了默認(rèn)的數(shù)據(jù)庫。
然后點(diǎn)設(shè)置,選擇允許模板查詢,然后點(diǎn)虛擬名稱,點(diǎn)新建類型是template名稱就叫
ddd吧,對應(yīng)的文件就是我們的aaa.xml。
然后在IE里邊打開:http://你的機(jī)器名/ccc/ddd
看到什么了?對,就是你的那個xml的文件在SQL查詢的時候輸出的內(nèi)容。
什么沒有輸出?打開你的“Internet 信息服務(wù)(IIS)管理器”,選擇“web擴(kuò)展服
務(wù)”,
然后是把“所有未知的ISAP擴(kuò)展”選擇允許。現(xiàn)在OK了吧?
好的,然后就是我們最關(guān)鍵的一步第3步--如何把這個動態(tài)生成的XML文件在VS.net里邊調(diào)用了。
首先我們要建立一個空的非結(jié)構(gòu)化的dataset1,然后在源代碼里邊在this.dataSet1.Locale = new System.Globalization.CultureInfo("zh-CN");
后邊加一句this.dataSet1.ReadXml("http://你的機(jī)器名/ccc/ddd");