设为首页 收藏本站
查看: 1234|回复: 0

[经验分享] SQL Server 2005 中的客户端 XML 处理

[复制链接]

尚未签到

发表于 2018-10-17 11:53:33 | 显示全部楼层 |阅读模式
SQL Server 2005 中的客户端 XML 处理

XML 数据类型的客户端支持

.NET 框架 V2.0 中的 ADO.NET XML 支持
  在 SqlDataReader.GetSqlXml() 方法的 System.Data.SqlTypes 命名空间中,XML 数据类型是作为类 SqlXml 公开的。可以使用 SqlXml.CreateReader() 函数从 SqlXml 对象获得 XmlReader。
  类型化 XML 列的 XML 架构集合的名称由三部分组成,可以从 XML 列的元数据中获得(通过使用 SqlDataReader 对象中的 GetSchemaTable() 或 GetSqlMetaData (int)),其三个部分作为三个属性,分别表示数据库 (XmlSchemaCollectionDatabase)、关系架构 (XmlSchemaCollectionOwingSchema) 和 XML 架构集合 (XmlSchemaCollectionName) 的名称。
  客户端可以使用新的架构行集 XMLSCHEMA 从服务器检索 XML 架构。XMLSCHEMA 行集包含 XML 架构集合、目标命名空间和 XML 架构内容本身这样三列。
  下面的示例显示了用于对 XML 数据类型进行托管访问的主干代码。
  例:对 XML 数据类型进行进程内访问
  下面的 C# 代码演示了如何从进程内提供程序访问 XML 数据类型。用于 SQL 客户端访问的代码需要适当地改变进程内访问。
  


  • using System;
  • using System.Xml;
  • using System.Data;
  • using System.Data.SqlTypes;
  • using System.Data.SqlServer;

  • class xmldtADONETReadAccessInProc
  • {
  •    static void ReadXmlDataType () {
  •       // in-proc connection to server
  •       SqlConnection conn = SqlContext.GetConnection();

  •       // prepare query to select xml data
  •       SqlCommand cmd = conn.CreateCommand();
  •       cmd.CommandText = "SELECT xCol FROM docs";

  •       // execute query and retrieve incoming data
  •       SqlDataReader r = cmd.ExecuteReader();
  •       r.Read();

  •       // access XML data type field in rowset
  •       SqlXml xml = r.GetSqlXml(0);
  •       new XmlTextWriter(Console.Out).WriteNode(
  • xml.CreateReader(), true);
  •    }
  • }
  

  例:使用 SQL 客户端提供程序更新 XML 数据类型列
  下面的代码所显示的 WriteXmlDaraType () 方法使用 SQL 客户端程序提供程序来替换 XML 列中的值。用于进程内提供程序的代码是相似的。
  


  • using System;
  • using System.Xml;
  • using System.Data;
  • using System.Data.SqlTypes;
  • using System.Data.SqlClient;

  • class xmldtADONETUpdateAccess
  • {
  •    static void WriteXmlDataType () {
  •       // connection to server
  •       SqlConnection conn = new SqlConnection("server=server1;" +
  • " database=XMLtest; Integrated Security=SSPI");
  •       conn.Open();

  •    // update XML column at the server
  •    SqlCommand cmd = conn.CreateCommand();
  •    cmd.CommandText = "UPDATE docs SET xCol=@x WHERE id=1";

  • // set value of XML parameter
  •    SqlParameter p = cmd.Parameters.Add("@x", SqlDbType.Xml);
  • p.Value = new SqlXml(new XmlTextReader("",
  • XmlNodeType.Document, null));

  • // execute update and close connection
  •    cmd.ExecuteNonQuery();
  • conn.Close();
  • }
  • }



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-622775-1-1.html 上篇帖子: 用SQL server 获取AD 数据 下篇帖子: Sql Server 2005及2000 默认端口修改方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表