在C#中使用SqlDbType.Xml类型参数
在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类型参数相关推荐
- SQL Server 2005 中的客户端 XML 处理
SQL Server 2005 中的客户端 XML 处理 XML 数据类型的客户端支持 .NET 框架 V2.0 中的 ADO.NET XML 支持 在 SqlDataReader.GetSqlXml ...
- 在C#.net中如何操作XML
在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlEle ...
- Struts2中导入外部xml文件出现Included file cannot be found错误!
Struts.xml 文件中导入外部xml文件,需要在Struts.xml文件中加入include元素. ch3.xml文件位于ch3目录中.ch3.xml是一个标准的Struts2配置文件 路径千万 ...
- 不允许 ASSIGNMENT 语句中包含 FOR XML 子句。
DECLARE @guidList NVARCHAR(max) SELECT @guidList=( CAST(OrderGUID AS nvarchar(max)) +',') FROM Or ...
- Spring中加载xml配置文件的六种方式
Spring中加载xml配置文件的六种方式 博客分类: Spring&EJB XMLSpringWebBeanBlog 因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装 ...
- myeclipse中配置spring xml自己主动提示
版权声明: https://blog.csdn.net/zdp072/article/details/24582173 这是一篇分享技巧的文章:myeclipse中配置spring xml自己主动提示 ...
- LINQ to XML .Net 3.5 中的新XML对象
System.Xml.Linq 命名空间中,有一系列新的LINQ to XML 帮助对象,使处理内存中的XML文档变的非常简单. 示例使用的Hamlet.xml来源自C#高级编程源代码. XDocum ...
- maven web项目中的web.xml的版本如何更改
maven web项目中的web.xml的版本如何更改 问题 因web.xml的版本太低不支持el表达式的问题(maven3.6版本通过底层的maven web插件生成的最终的web.xml文件版本只 ...
- Maven 中的pom.xml文件
Maven中的Pom.xml文件解析 项目管理利器(Maven)--Pom.xml解析<name>项目的描述名</name> <url>项目的地址</url& ...
最新文章
- VLC通信仿真中数字脉冲间隔调制(DPIM)实例
- Java经典面试题整理及答案详解(四)
- Android:解决Button中的文字全部大写
- 如何利用光衰减器测试光纤收发器的灵敏度?
- VB.NET中图像处理的一些技巧以及其和C#图像处理的差距。
- 标贝科技推出「留声机」TTS方案,高还原、个性化声效提升交互意愿
- python程序memory error_Python memory error的问题
- 凸优化第三章凸函数 作业题
- 散粉在哪个步骤用_平时用的散粉除了所谓的定妆,还有这么多好处啊?
- 基于Java的webapp_第一个 JAVA WEB 应用
- SIFT算法原理介绍
- Seaweedfs 详细说明
- 免费又好用的Windows任务栏透明化工具——Translucent TB
- android日历编程,Android日历控件PickTime代码实例
- ECharts之类型3D(map,bar3D,scatter3D)
- 练习命令的使用,具体命令如下: set getrange strlen append setbit bitcount decr decrby incr incrby incr
- Git基本命令的使用
- C#System.NullReferenceException:未将对象引用设置到对象的实例
- AtCoder ABC 250 总结
- 0110 - 给 iPhone 6 换了电池