成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server XML查詢工具

數(shù)據(jù)庫 SQL Server
SQL Server 數(shù)據(jù)庫是一種功能性很好的數(shù)據(jù)庫系統(tǒng),很多用戶在選擇數(shù)據(jù)庫時(shí)都選擇了SQL Server數(shù)據(jù)庫,本文中將為大家介紹SQL Server XML查詢工具,希望對大家能夠有所幫助。

導(dǎo)讀:SQL Server 提供了一個(gè)非常好用的客戶端檢索工具-查詢分析器,但是美中不足的是查詢分析器無法對XML查詢給出很好的結(jié)果,用戶無法完整查看XML結(jié)果集。上學(xué)期給IBM電子商務(wù)班講XML與WebService時(shí),不得不自己寫了一個(gè)程序執(zhí)行XML檢索。雖然程序?qū)嵲谟行┖喡吘箍梢酝瓿烧n堂演示的要求。

程序主體是通過sqlCommand的ExecuteXmlReader方法完成的。我添加了一些對特殊字符的MIME編碼(這一部分應(yīng)當(dāng)有現(xiàn)成代碼,不過我沒有找到,只好自己將就著寫了),以及XML格式處理功能。先貼上一些代碼,具體可以自己下載后看。希望多提寶貴意見。

關(guān)鍵代碼:

  1.  
  2. private void btnSearch_Click(object sender, System.EventArgs e)  
  3. {  
  4.  
  5.   string s = "<?xml version="1.0" encoding="utf-8"?><SearchResult>";  
  6.   string endWith = "";  
  7.  
  8.   // 創(chuàng)建連接對象實(shí)例  
  9.   SqlConnection myConnection =   
  10.       new SqlConnection(ConfigurationSettings.AppSettings["ConnectString"]);  
  11.   SqlCommand myCommand = new SqlCommand(txtCondition.Text, myConnection);  
  12.   myCommand.CommandType = CommandType.Text;  
  13.  
  14.   // 創(chuàng)建 XML Reader,并讀取數(shù)據(jù)到 XML 字符串中  
  15.   XmlTextReader xmlReader = null;  
  16.  
  17.   try  
  18.   {  
  19.     // 打開數(shù)據(jù)庫連接  
  20.     myConnection.Open();  
  21.  
  22.     // 運(yùn)行存儲(chǔ)過程并初始化 XmlReader  
  23.     xmlReader = (XmlTextReader)myCommand.ExecuteXmlReader();  
  24.  
  25.     while(xmlReader.Read())  
  26.     {  
  27.       if (xmlReader.NodeType == XmlNodeType.Element)   
  28.       {  
  29.         s += "<" + xmlReader.Name;  
  30.           
  31.         if (xmlReader.IsEmptyElement)   
  32.           endWith ="/";  
  33.         else  
  34.           endWith = "";  
  35.           
  36.         if (xmlReader.HasAttributes)   
  37.         {  
  38.           while(xmlReader.MoveToNextAttribute())  
  39.             s += " " + xmlReader.Name + "="" + ToMIMEString(xmlReader.Value) + """;  
  40.         }  
  41.  
  42.         s += endWith + ">";  
  43.           
  44.       }  
  45.       else if (xmlReader.NodeType == XmlNodeType.EndElement)  
  46.       {  
  47.         s += "</" + xmlReader.Name + ">";  
  48.       }   
  49.       else if (xmlReader.NodeType == XmlNodeType.Text)   
  50.       {  
  51.         if (xmlReader.Value.Length != 0)   
  52.         {  
  53.           s += ToMIMEString(xmlReader.Value);  
  54.         }  
  55.       }  
  56.     }  
  57.  
  58.     s+="</SearchResult>";  
  59.     txtResult.Text = s;          
  60.   }  
  61.   catch (Exception)  
  62.   {  
  63.     txtResult.Text = "Got an error";  
  64.     //不處理任何錯(cuò)誤  
  65.   }  
  66.   finally  
  67.   {  
  68.     // 關(guān)閉數(shù)據(jù)庫連接并清理 reader 對象  
  69.     myConnection.Close();  
  70.     xmlReader = null;  
  71.   }  
  72.  
  73.   XmlDocument xmlDoc = new XmlDocument();  
  74.   xmlDoc.LoadXml(s);  
  75.   //=============================================  
  76.   //將結(jié)果寫入  
  77.   //=============================================  
  78.   try  
  79.   {  
  80.     MemoryStream ms = new MemoryStream();  
  81.     XmlTextWriter xtw = new XmlTextWriter(ms, Encoding.UTF8);  
  82.     xtw.Formatting = Formatting.Indented;  
  83.     xmlDoc.Save(xtw);  
  84.     byte[] buf = ms.ToArray();  
  85.     txtResult.Text = Encoding.UTF8.GetString(buf,0,buf.Length);  
  86.     xtw.Close();  
  87.   }  
  88.   catch  
  89.   {  
  90.     txtResult.Text = "出現(xiàn)錯(cuò)誤!";  
  91.   }  
  92.  
  93. }  
  94.     
  95. private string ToMIMEString(string s)  
  96. {  
  97.   StringBuilder sb = new StringBuilder();  
  98.  
  99.   char[] ssource = s.ToCharArray();  
  100.   foreach(char c in source)  
  101.   {  
  102.     if(c=='<')  
  103.       sb.Append("&lt;");  
  104.     else if(c=='&')  
  105.       sb.Append("&amp;");  
  106.     else if(c=='>')  
  107.       sb.Append("&gt;");  
  108.     else if(c=='"')  
  109.       sb.Append("&quot;");  
  110.     else  
  111.       sb.Append(c);  
  112.   }  
  113.   return sb.ToString();  

數(shù)據(jù)庫連接可以通過修改 XML_Search.exe.config 文件實(shí)現(xiàn)。程序?qū)Ρ镜啬J(rèn)SQL實(shí)例的Northwind數(shù)據(jù)庫執(zhí)行XML查詢。

【編輯推薦】

  1. SQL Server XML 入門的18句話
  2. SQL Server管理工具的升級
  3. 深入討論SQL Server 表的主鍵問題
  4. SQL Server數(shù)據(jù)庫中對圖片進(jìn)行保存和輸出
責(zé)任編輯:迎迎 來源: 博客園
相關(guān)推薦

2010-06-28 09:53:11

SQL Server數(shù)

2013-05-20 16:09:39

SQL Server

2010-09-28 14:33:13

SQL語句

2009-02-23 13:41:42

XML操作函數(shù)SQL Server

2010-10-21 10:28:13

SQL Server查

2010-11-09 10:00:37

SQL Server簡

2010-10-21 12:16:11

SQL Server查

2009-07-06 18:18:41

SQL Server全

2010-10-21 14:27:35

SQL Server時(shí)

2022-02-09 10:07:03

LinuxSQL Server

2021-08-17 10:39:54

SQL Server數(shù)據(jù)庫優(yōu)化

2010-07-14 14:46:21

2009-10-23 10:08:29

SQL SERVER

2010-07-15 09:14:32

SQL server組

2010-01-14 09:13:19

MySQL to SQ數(shù)據(jù)庫遷移

2010-06-28 13:56:16

SQL Server代

2021-09-13 10:23:52

工具ProfilerSQL

2010-10-21 14:54:32

查詢SQL Serve

2010-11-09 09:43:20

SQL Server查

2010-11-09 11:54:50

sql server查
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品一区二区三区在线 | h视频在线观看免费 | 国产精品久久久久久久久久免费看 | 日韩精品在线观看一区二区三区 | 一级高清免费毛片 | 91 在线| www亚洲免费国内精品 | 99热视| 国内成人免费视频 | 亚洲国产精品一区二区久久 | 亚洲精品一二三 | 成人精品在线观看 | 久久精品国产一区二区三区不卡 | 中文字幕亚洲欧美 | 国产一区二区三区免费 | 一区二区中文字幕 | 另类亚洲视频 | 色婷婷精品国产一区二区三区 | av在线一区二区三区 | 羞羞涩涩在线观看 | 一区二区三区在线看 | 亚洲男人的天堂网站 | 国产91丝袜在线熟 | 午夜影院普通用户体验区 | 久久国产日本 | 成人精品一区亚洲午夜久久久 | 久久久久国产精品 | 国外成人在线视频 | 国产精品影视在线观看 | 久久亚洲综合 | 成人在线播放网址 | 日韩精品成人一区二区三区视频 | 亚洲国产成人精品女人久久久 | 伊人久久精品一区二区三区 | 国产精品国产精品 | 亚洲最大av网站 | 国内成人免费视频 | 国产午夜一级 | 亚洲二区在线观看 | 久精品久久 | 国产精品成人一区二区三区夜夜夜 |