Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何从SQL Server中的列中获取XML值_Asp.net_Sql Server 2008 - Fatal编程技术网

Asp.net 如何从SQL Server中的列中获取XML值

Asp.net 如何从SQL Server中的列中获取XML值,asp.net,sql-server-2008,Asp.net,Sql Server 2008,我有一个SQL Server表tblApplications,其中有一些列。。。其中一列称为Content,其XML值如下图所示: 当我点击上图中内容的值时,它在NewTab中显示如下 我想使用tblApplications中的查询,从datagroupItem的datagroupItem下的dataitem的xml值中获取id值 如何使用id从内容中获取值??例如,我想获取dataitem的id值='ForeNames' 如何使用查询获取它???您可以尝试以下查询: SELECT a.a

我有一个SQL Server表
tblApplications
,其中有一些列。。。其中一列称为
Content
,其XML值如下图所示:

当我点击上图中内容的值时,它在NewTab中显示如下

我想使用
tblApplications
中的查询,从
datagroupItem
datagroupItem
下的
dataitem
的xml值中获取id值

如何使用id从内容中获取值??例如,我想获取dataitem的id值='ForeNames'


如何使用查询获取它???

您可以尝试以下查询:

SELECT  a.application_id,
    x.y.query('.') AS DataItemNode,
    x.y.value('(@type)[1]','NVARCHAR(50)') AS TypeAttr,
    x.y.value('(@value)[1]','NVARCHAR(50)') AS ValueAttr
FROM    dbo.tblApplications a
CROSS APPLY a.Content.nodes('/XmlDataPairDocument/dataitem/datagroup/datagroupitem/dataitem[@id="forenames"]') x(y)


另一个类似的问题回答:,

您需要向我们展示该列中存储的完整XML-将其作为文本粘贴到您的问题中-请不要发布图片!上帝,我希望那不是一个真实的人:)
DECLARE @id NVARCHAR(50);
SET @id='forenames';

SELECT  a.application_id,
    x.y.query('.') AS DataItemNode,
    x.y.value('(@type)[1]','NVARCHAR(50)') AS TypeAttr,
    x.y.value('(@value)[1]','NVARCHAR(50)') AS ValueAttr
FROM    dbo.tblApplications a
CROSS APPLY a.Content.nodes('/XmlDataPairDocument/dataitem/datagroup/datagroupitem/dataitem[@id = sql:variable("@id")]') x(y)