无效的XML标识符FOR XML
要求我有一个SP返回我:无效的XML标识符FOR XML
Select 10 as Visits,5 as [Test_Drives],3 as Orders,'£5000' as [Profit_£],4 as Deliveries,'£6000' as [Delivered_Profit_£] FOR XML PATH('CONTENT'),ROOT('SOMEROOT')
但是当我使用ouptut作为
Dim dr As New SqlDataAdapter(SqlCmd) Dim tbl As New DataTable
dr.Fill(tbl)
我得到一个错误
列名'Profit_£'包含FOR XML所要求的无效XML标识符; '£'(0x00A3)是错误的第一个字符。
问题是我需要有一个原始名称的列。
我该如何解决这个问题?
回答:
它的not legal有一个包含£
符号的节点名称,所以即使您可以说服mssql来允许您使用,但是对于生成的XML所做的任何操作都可能会被拒绝。
如果你想要XML并且不在意它的结构不良,你将不得不返回一个常规的结果集到你的.net应用程序中并手动构建一个xml字符串。
最好不要使用£
首先; ... as [Profit_Pounds]
。
根据你想要的,FOR XML RAW会自动将£转换成_x名称。
回答:
您需要为含有井号的列找到另一个名称,因为这些名称对于FOR XML
无效。
请考虑使用货币缩写,例如Profit_GBP
,Delivered_Profit_GBP
。
XML数据格式仅支持无重音的US-ASCII字符A-Z,一些标点符号和数字。英镑符号(和欧元)明确不支持。
以上是 无效的XML标识符FOR XML 的全部内容, 来源链接: utcz.com/qa/258516.html