这是 SQL CLR,我只是想创建一个从 SQL 接收 XML 的函数,然后获取某个节点的值并返回它:
[SqlFunction]
public static SqlString FnGetQuoteNumber(XmlDocument xmlDoc)
{
string nodeValue = null;
xmlDoc.Load(xmlDoc.ToString());
XmlNode node = xmlDoc.DocumentElement.SelectSingleNode("//Identifier[@name='Item1']");
if (xmlDoc.DocumentElement != null)
{
nodeValue = node.Attributes["value"].Value;
}
return new SqlString(nodeValue);
}
但后来我意识到,不应该将我的参数声明为SqlXml xmlDoc
而不是XmlDocument xmlDoc
?
如果是这种情况,那么我不能执行上述操作,因为我不再处理 an XmlDocument
(没有DocumentElement
/selectSingleNode
等)。
为 s 执行此操作的正确方法是什么SqlXml
?
此外,当我尝试部署它时,我不断得到它(我认为这与XmlDocument
我试图作为参数传递):
开始将程序集 SolutionName.dll 部署到服务器 localhost:DATABASE
如果部署为与 SQL Server 目标实例不兼容的 .NET Framework 版本构建的 SQL CLR 项目,则可能会出现以下错误:“部署错误 SQL01268:为程序集创建程序集失败,因为程序集验证失败”。要解决此问题,请打开项目的属性,然后更改 .NET Framework 版本。
c:\****** name.dll:部署错误:无法为参数 System.Xml.XmlDocument xmlDoc 创建类型
构建失败。
经过时间 00:00:01.96
========== 构建:1 个成功或最新,0 个失败,0 个跳过 ==========
========== 部署:0 成功,1 失败,0 跳过 ==========
任何人都可以帮我一把吗?
XML 截图: