在sql server2005以及之后的sql server中引入了Xml数据类型,在C#中使用Xml数据类型需要指定参数类型为SqlDbType,参数值类型需要用SqlXml,如下示例:

假定有一种表A,A表有两个字段:ID 类型 int,Data 类型 Xml,我要用C#往表中插入一行记录:

static void InsertA(int aid, string contentXml)
{
//ConnString是连接字符串,需要额外定义using (SqlConnection conn = new SqlConnection(ConnString)){conn.Open();string sql = "INSERT INTO [A] ([ID],[Content])VALUES(@id,@content)";using (SqlCommand comm = new SqlCommand(sql, conn)){using (XmlTextReader rdr = new XmlTextReader(contentXml, XmlNodeType.Document, null)){SqlXml sqlXml = new SqlXml(rdr);SqlParameter parmID = new SqlParameter("@id", aid);SqlParameter parmContent = new SqlParameter("@content", SqlDbType.Xml, sqlXml.Value.Length);parmContent.Value = sqlXml;comm.Parameters.Add(parmID);comm.Parameters.Add(parmContent);comm.ExecuteNonQuery();}}conn.Close();}
}

插入数据时需要用SqlXml数据类型作为参数值,但读出Xml类型数据时的C#数据类型是string。如下示例:

string GetContent(int id)
{string sql = "SELECT [Content] FROM [A] WHERE [ID] = " + id;using (SqlConnection conn = new SqlConnection(ConnString)){conn.Open();using (SqlCommand comm = new SqlCommand(sql,conn)){string xml = (string)comm.ExecuteScalar();return xml;}}
}

需要注意的是,在插入数据时Xml字段的参数值类型不可以为string,直接用string会报编码错误异常。

转载于:https://www.cnblogs.com/yukaizhao/archive/2011/08/17/sqlxml_sqldbtype_xml.html

在C#中使用SqlDbType.Xml类型参数相关推荐

  1. SQL Server 2005 中的客户端 XML 处理

    SQL Server 2005 中的客户端 XML 处理 XML 数据类型的客户端支持 .NET 框架 V2.0 中的 ADO.NET XML 支持 在 SqlDataReader.GetSqlXml ...

  2. 在C#.net中如何操作XML

    在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEle ...

  3. Struts2中导入外部xml文件出现Included file cannot be found错误!

    Struts.xml 文件中导入外部xml文件,需要在Struts.xml文件中加入include元素. ch3.xml文件位于ch3目录中.ch3.xml是一个标准的Struts2配置文件 路径千万 ...

  4. 不允许 ASSIGNMENT 语句中包含 FOR XML 子句。

    DECLARE @guidList NVARCHAR(max) SELECT   @guidList=( CAST(OrderGUID AS nvarchar(max)) +',')  FROM Or ...

  5. Spring中加载xml配置文件的六种方式

    Spring中加载xml配置文件的六种方式 博客分类: Spring&EJB XMLSpringWebBeanBlog  因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装 ...

  6. myeclipse中配置spring xml自己主动提示

    版权声明: https://blog.csdn.net/zdp072/article/details/24582173 这是一篇分享技巧的文章:myeclipse中配置spring xml自己主动提示 ...

  7. LINQ to XML .Net 3.5 中的新XML对象

    System.Xml.Linq 命名空间中,有一系列新的LINQ to XML 帮助对象,使处理内存中的XML文档变的非常简单. 示例使用的Hamlet.xml来源自C#高级编程源代码. XDocum ...

  8. maven web项目中的web.xml的版本如何更改

    maven web项目中的web.xml的版本如何更改 问题 因web.xml的版本太低不支持el表达式的问题(maven3.6版本通过底层的maven web插件生成的最终的web.xml文件版本只 ...

  9. Maven 中的pom.xml文件

    Maven中的Pom.xml文件解析 项目管理利器(Maven)--Pom.xml解析<name>项目的描述名</name> <url>项目的地址</url& ...

最新文章

  1. VLC通信仿真中数字脉冲间隔调制(DPIM)实例
  2. Java经典面试题整理及答案详解(四)
  3. Android:解决Button中的文字全部大写
  4. 如何利用光衰减器测试光纤收发器的灵敏度?
  5. VB.NET中图像处理的一些技巧以及其和C#图像处理的差距。
  6. 标贝科技推出「留声机」TTS方案,高还原、个性化声效提升交互意愿
  7. python程序memory error_Python memory error的问题
  8. 凸优化第三章凸函数 作业题
  9. 散粉在哪个步骤用_平时用的散粉除了所谓的定妆,还有这么多好处啊?
  10. 基于Java的webapp_第一个 JAVA WEB 应用
  11. SIFT算法原理介绍
  12. Seaweedfs 详细说明
  13. 免费又好用的Windows任务栏透明化工具——Translucent TB
  14. android日历编程,Android日历控件PickTime代码实例
  15. ECharts之类型3D(map,bar3D,scatter3D)
  16. 练习命令的使用,具体命令如下: set getrange strlen append setbit bitcount decr decrby incr incrby incr
  17. Git基本命令的使用
  18. C#System.NullReferenceException:未将对象引用设置到对象的实例
  19. AtCoder ABC 250 总结
  20. 0110 - 给 iPhone 6 换了电池

热门文章

  1. oss2模块和aliyun oss连接
  2. Java Excel 插入图片
  3. hdu 2897 巴什博弈变形
  4. SAP提请法院向甲骨文支付不超4亿美元赔偿金
  5. 买笔记本的10大愚蠢表现
  6. BCH优于BCE+LN的5个理由
  7. 又一款基于BCH开发出来的社交软件BlockPress
  8. 技术工坊|解密区块链DApp的代码逻辑,从请求到数据存储都要经历什么?(上海)...
  9. 《Cisco ASA设备使用指南》一2.8 Cisco ASA吉比特以太网模块
  10. 【备忘】linux shell 字符串操作(长度,查找,替换,匹配)详解