在C#中使用SqlDbType.Xml类型参数
来源:互联网 发布:上知品牌策划机构 编辑:程序博客网 时间:2024/06/03 16:49
在sql server2005以及之后的sql server中引入了Xml数据类型,在C#中使用Xml数据类型需要指定参数类型为SqlDbType,参数值类型需要用SqlXml,如下示例:
假定有一种表A,A表有两个字段:ID 类型 int,Data 类型 Xml,我要用C#往表中插入一行记录:
01
static
void
InsertA(
int
aid,
string
contentXml)
02
{
03
//ConnString是连接字符串,需要额外定义
04
using
(SqlConnection conn =
new
SqlConnection(ConnString))
05
{
06
conn.Open();
07
string
sql =
"INSERT INTO [A] ([ID],[Content])VALUES(@id,@content)"
;
08
using
(SqlCommand comm =
new
SqlCommand(sql, conn))
09
{
10
using
(XmlTextReader rdr =
new
XmlTextReader(contentXml, XmlNodeType.Document,
null
))
11
{
12
SqlXml sqlXml =
new
SqlXml(rdr);
13
14
SqlParameter parmID =
new
SqlParameter(
"@id"
, aid);
15
SqlParameter parmContent =
new
SqlParameter(
"@content"
, SqlDbType.Xml, sqlXml.Value.Length);
16
parmContent.Value = sqlXml;
17
18
comm.Parameters.Add(parmID);
19
comm.Parameters.Add(parmContent);
20
comm.ExecuteNonQuery();
21
}
22
}
23
conn.Close();
24
}
25
}
插入数据时需要用SqlXml数据类型作为参数值,但读出Xml类型数据时的C#数据类型是string。如下示例:
01
string
GetContent(
int
id)
02
{
03
string
sql =
"SELECT [Content] FROM [A] WHERE [ID] = "
+ id;
04
05
using
(SqlConnection conn =
new
SqlConnection(ConnString))
06
{
07
conn.Open();
08
using
(SqlCommand comm =
new
SqlCommand(sql,conn))
09
{
10
string
xml = (
string
)comm.ExecuteScalar();
11
return
xml;
12
}
13
}
14
}
需要注意的是,在插入数据时Xml字段的参数值类型不可以为string,直接用string会报编码错误异常。
转载自: http://www.cnblogs.com/yukaizhao/archive/2011/08/17/sqlxml_sqldbtype_xml.html- 在C#中使用SqlDbType.Xml类型参数
- 在C#中使用SqlDbType.Xml类型参数
- C#中如何为参数SqlDbType.Decimal指定精度与小数位数
- \t\t在MSSQL中定义和使用C#自定义类型 SQL Server08表类型参数传递
- 在C#中使用Nullable类型
- 在C#中使用Nullable类型
- 在C#中使用Nullable类型
- 在C#中使用Nullable类型
- 在C#中使用XML指南之读取XML
- 在C#中使用XML指南之读取XML
- 在Visual C#中使用XML指南之读取XML
- 在Visual C#中使用XML指南之读取XML
- 在Visual C#中使用XML之编写XML
- 在C#中使用XML指南之读取XML
- 在Visual C#中使用XML指南之读取XML
- 在Visual C#中使用XML指南之读取XML
- 在Visual C#中使用XML指南之读取XML
- 在Visual C#中使用XML指南之读取XML
- 354354343
- Repeater取各项输入TextBox的值
- 重启sshd服务
- linux下添加,删除,修改,查看用户和用户组
- 不同服务器数据库之间的数据操作
- 在C#中使用SqlDbType.Xml类型参数
- 为菜单添加处理事件VC++
- Sql Server数据库事务介绍(二)---Sql语句,SqlTransaction和TransactionScope的使用方法
- SLT 内存的分配
- <typeAlias> <reslutmap> <parameterMap>
- Nsis的自我理解
- 学习NodeJS第一天:node.js引言
- A* 寻路算法
- ADSP-21369 A1的主频