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
相关文档:
在Access2007中从Excel导入时,经常会碰到如下的错误提示:“针对该架构进行的规范XML验证失败。以下XML文档行中存在错误:|。”
我的解决方式是用链接表方式来打开Excel文件,然后在复制链接表,粘贴。 ......
DECLARE @HDOC INT --文档句柄
DECLARE @XMLSTRING VARCHAR(200) --XML字符串
SET @xmlString ='<?xml version="1.0"?>
<ROOT>
<USER ID="1" Name="SBQCEL"/>
<USER ID="2" Name="PEACELI"/>
<USER ID="3" Name="SHEEPCHANG"/>
</ROOT>'
--使用系统存储 ......
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> ......
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
(1)使用JDOM首先要指定使用什么解析器。如:
SAXBuilder builder=new SAXBuilder(false) ......