SQL Server2005 xml字段使用方法 1对多表记录读取
在SQL Server2005中有FOR XML 用法,可以讲一个表作为一个字段。
我的设计想法主要是用在1对多的关系中表读取的问题。
表A 表B
在A中有一条记录而在B中有多条记录可以参照下面的写法:(我的项目中用到的,修改了字段主要是演示用)
select A.*,
(SELECT a, CAST(G_Univalence AS NVARCHAR(48)) AS G_Univalence,
--注意留下他的意义只是money字段在for xml中它采用科学计数法显示,在应用中不好处理
from B WHERE B.CB_ID = A.BP_ID FOR XML RAW,TYPE,ROOT('GrainConstraint')) AS GrainConstraint
--使用TYPE返回 xml字段类型
from A
在后台,使用SqlDataReader读取xml字段,GetSqlXml(),参照下面的代码.
public static bool ToDataTable(SqlXml sxSource, DataTable dt)
{
XmlReader xmlReader = sxSource.CreateReader();
string tempName;
int nColumnIndex;
Type type;
while (xmlReader.Read()) //每次循环1条记录
{
switch (xmlReader.NodeType)
{
case XmlNodeType.Element:
if (xmlReader.LocalName == "row")
{
&n
相关文档:
已知有一个XML文件(bookstore.xml)如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
< ......
declare @XML XML
SET @XML='<root>
<OLDVALUE>
<H_Action id="1130">030</H_Action>
<D_Action>030</D_Action>
<OrderCompany>00220</OrderCompany>
<OrderNumber>10004035</OrderNumber> ......
引用类库:
using System;
using System.Data;
using System.IO;
using System.Xml;
using System.Text;
// 相应C#代码:
private string ConvertDataTableToXML(DataTable xmlDS)
{
MemoryStream stream = null;
XmlTextWriter writer = null;
try
......
2009-12-19考了CET英语,心情很差,估计又不过的,哎!英文差!
于是看看书,看看自己感兴趣的书
今天下午,研究了整个下午的小难题,在8点40分终于搞定了!肚子饿,还没吃饭,还没洗澡,克服了一个不懂的小难题,心理有点体会,想在这里留点纪念,方便别人以后学习。于是乎,我写了:
(那些开训练器的相关介绍我就不再 ......