日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

sql查询返回xml数据之应用【转载】

發布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql查询返回xml数据之应用【转载】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
sql查詢返回xml數據之應用【轉載】 今天查看郵件,看到一標題Using the FOR XML Clause to Return Query Results as XML,點進去看了看,以前也是知道sql server 查詢可以返回xml格式,但具體一到應用中比較少, 讀過文章后,想到自己的項目有調用遠程web服務,傳xml格式串方法,這個xml串是拼接而成的。想到此,決定做個測試,看程序中如何接收sql查詢返回xml格式,為以后做 個筆記,方便自己查找。

測試步驟:


1.?????? 創建測試數據,以用戶表為例,創建語句和添加數據語句如下:?

?? /*創建表*/



CREATE TABLE [dbo].[Users](
???
[ID] [int] IDENTITY(1,1) NOT NULL,
???
[UserID] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
???
[UserName] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
???
[Address] [varchar](260) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED
(
???
[ID] ASC
)
WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
)
ON [PRIMARY]

GO
-----------------插入測試數據
INSERT [Users] ( [UserID],[UserName],[Address]) VALUES ('su20090812001','kevin','beijing')
INSERT [Users] ( [UserID],[UserName],[Address]) VALUES ( 'su20090912002','zhangsan','tianjin')
INSERT [Users] ( [UserID],[UserName],[Address]) VALUES ( 'su20090701234','wangwu','shanghai')
INSERT [Users] ( [UserID],[UserName],[Address]) VALUES ( 'su20090912004','lisi','beijing')
INSERT [Users] ( [UserID],[UserName],[Address]) VALUES ( 'su20090912005','jialiu','hebei')
INSERT [Users] ( [UserID],[UserName],[Address]) VALUES ( 'su20090912007','qianlong','zhejiang')
復制代碼

2.??
??
sql server management studio 中溫習下 sql 查詢加for xml后的結果集,主要是參考Using the FOR XML Clause to Return Query Results as XML文內容,在sql 語句結束處加for xml auto root(‘xxx’) elements等等。


?? (1):sql 語句:SELECT * FROM Users u?? FOR XML raw

執行結果如下:????



<row ID="1" UserID="su20090812001" UserName="kevin" Address="beijing" />

<row ID="2" UserID="su20090912002" UserName="zhangsan" Address="tianjin"/>


<row ID="3" UserID="su20090701234" UserName="wangwu" Address="shanghai"/>


<row ID="4" UserID="su20090912004" UserName="lisi" Address="beijing"/>


<row ID="5" UserID="su20090912005" UserName="jialiu" Address="hebei"/>


<row ID="6" UserID="su20090912007" UserName="qianlong" Address="zhejiang"/>


復制代碼

??
(2):Sql
語句:SELECT*FROM Users u?? FOR XML RAW('User')



<User ID="1" UserID="su20090812001" UserName="kevin" Address="beijing" />

<User ID="2" UserID="su20090912002" UserName="zhangsan" Address="tianjin"/>


<User ID="3" UserID="su20090701234" UserName="wangwu" Address="shanghai"/>


<User ID="4" UserID="su20090912004" UserName="lisi" Address="beijing"/>


<User ID="5" UserID="su20090912005" UserName="jialiu" Address="hebei"/>


復制代碼

<User ID="6" UserID="su20090912007" UserName="qianlong" Address="zhejiang" />


? (3):Sql 語句SELECT * FROM Users u FOR XML RAW('User'),ROOT('Users'),elements 不在copy 執行結果了,大家自己執行下就可以看到效果了。


3.?????? ASP.NET中如何獲取這種形式的數據集呢。主要用到xmlreader(xmlTextReader),這里以xmlreader為例,

在程序代碼中,主要用是用SqlCommand對象ExecuteXmlReader()方法,


下面是


具體的實現代碼:


using System.Web.UI.WebControls;


using System.Xml;
using System.Data;
using System.Data.SqlClient;
using System.Text;
public partial class xmlUser : System.Web.UI.Page
{
???
protected void Page_Load(object sender, EventArgs e)
??? {
???????
if (!Page.IsPostBack)
??????? {
??????????? GetUserXml();
??????? }

??? }

???
private void GetUserXml()
??? {
??????? SqlConnection conn
= new SqlConnection("server=(local);uid=sa;pwd=kevin;database=demo;");
??????? SqlCommand cmd
= new SqlCommand("SELECT * FROM Users u FOR XML RAW('User'),ROOT('Users'),elements",conn);
??????? XmlReader myreader
= null;
???????
try
??????? {
??????????? conn.Open();
??????????? myreader
= cmd.ExecuteXmlReader();
??????????? StringBuilder sb
= new StringBuilder();
??????????? myreader.MoveToElement();
???????????
while (myreader.IsStartElement())
??????????? {??
///讀取xml部分
??????????????? sb.Append(myreader.ReadOuterXml());
??????????? }
???????????
///顯示xml的內容
??????????? Response.Write(Server.HtmlEncode(sb.ToString()).Replace("\n", "<br>"));

??????? }
???????
catch(SqlException err)
??????? {
???????????
//寫日志略
??????????
??????? }
???????
finally
??????? {
??????????? conn.Close();
??????? }
??? }
}

復制代碼

??運行結果:


<Users>

<User><ID>1</ID><UserID>su20090812001</UserID><UserName>kevin</UserName><Address>beijing</Address></User>

<User><ID>2</ID><UserID>su20090912002</UserID><UserName>zhangsan</UserName><Address>tianjin</Address></User>

<User><ID>3</ID><UserID>su20090701234</UserID><UserName>wangwu</UserName><Address>shanghai</Address></User>

<User><ID>4</ID><UserID>su20090912004</UserID><UserName>lisi</UserName><Address>beijing</Address></User>

<User><ID>5</ID><UserID>su20090912005</UserID><UserName>jialiu</UserName><Address>hebei</Address></User>

<User><ID>6</ID><UserID>su20090912007</UserID><UserName>qianlong</UserName><Address>zhejiang</Address></User>

</Users>

??
得到
sql 返回的xml格式的數據,以前我的那個項目拼接成的xml格式的字符串就可以省去一大部分拼接代碼。沒有測試過是在程序這邊拼接效率好還是數據庫返回xml

數據效率好,但編寫的程序代碼是減少很多。有興趣的同學幫忙測測這兩種方式哪種效率更好些呢。歡迎大家扔磚頭。


參考:

Using the FOR XML Clause to Return Query Results as XML?

http://www.simple-talk.com/content/article.aspx?article=720

?

如何使用SQLSERVER2000中的XML功能

http://www.legalsoft.com.cn/docs/docs/11/1001.html


使用ExecuteXMLReader()讀取XML片段

    http://blog.csdn.net/sunhaiwei_andy/archive/2008/04/14/2289586.aspx 原地址:http://www.cnblogs.com/liushanshan/archive/2011/04/14/2016209.html posted on 2010-12-14 23:49 搏擊的小船 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/guanjie20/archive/2010/12/14/2288219.html

總結

以上是生活随笔為你收集整理的sql查询返回xml数据之应用【转载】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 69堂在线观看 | 国产激情福利 | 无码熟妇αⅴ人妻又粗又大 | 91亚洲精品久久久蜜桃 | 四虎影院新网址 | 91尤物视频在线观看 | 人人干人人看 | 国产精品电影院 | 久爱视频在线 | 在线成人观看 | 麻豆视频在线看 | 小早川怜子一区二区三区 | 人成午夜 | 91免费黄色 | 国产乱码精品一品二品 | 欧洲亚洲激情 | 久久精品丝袜 | 免费成人在线视频观看 | 日本精品人妻无码免费大全 | 人妻一区二区三区免费 | 久久久黄色片 | 六月丁香综合 | 草草地址线路①屁屁影院成人 | 四川丰满少妇被弄到高潮 | 91浏览器在线观看 | 中出av在线 | 好色婷婷| 91日韩在线 | 9色视频在线观看 | 国产精品乱码一区二区三区 | 玖玖精品| 成人性生交大片免费卡看 | 成人免费xxxxxx视频 | 黑人黄色大片 | 精品少妇一区二区三区免费观 | 黄色成人在线视频 | 操碰视频| 国产精品九九 | 亚洲国产成人精品激情在线 | 少妇超碰 | 福利影院在线观看 | 免费黄色一级视频 | 亚洲爽爆 | 国产第三区 | av五月天在线| 中文视频一区二区 | 国产在线免费 | 欧美日韩一区二区三区四区五区六区 | 成人免费视频观看 | 国产精品人人爽 | 国产永久在线观看 | 欧美日韩国产区 | 精品一区二区免费视频 | 成人导航网站 | 99热久| 麻豆国产一区二区 | 少妇一级淫片免费视频 | 久久久资源网 | 午夜婷婷网 | 色婷婷av一区二区三区麻豆综合 | 无遮挡在线观看 | 久久久久一区二区三区四区 | 91一区二区视频 | 国产精品中文 | 亚洲美女爱爱 | a级无毛片 | 国产午夜性春猛交ⅹxxx | 亚洲第一a| 久久999| 熟女俱乐部一区二区 | 手机看片日韩国产 | 国产精品无码天天爽视频 | 精品国产乱码一区二区三 | 呦呦在线视频 | 日本888xxxx| 一区二区三区视频网 | 97超碰在线资源 | 激情综合五月天 | 在线视频 一区二区 | 台湾性生生活1 | 亚洲综合自拍偷拍 | 97xxx| 天天爱天天爽 | 一吻定情2013日剧 | 男女国产精品 | 国外成人性视频免费 | 免费的黄网站 | 日韩精品一二三四区 | 日韩精品tv | 老头av| 一级片亚洲 | 黄片毛片 | 正在播放一区二区 | 国产小视频在线看 | 91视频免费网址 | 欧美20p | 久久青青草原 | 午夜日韩 | 国产成人精品一区二区三 |