FOR XML要求的无效XML标识符

use*_*618 3 .net xml sql vb.net ado.net

我有一个回复我的sp:

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')
Run Code Online (Sandbox Code Playgroud)

但是当我使用ouptut时

Dim dr As New SqlDataAdapter(SqlCmd)
Dim tbl As New DataTable
dr.Fill(tbl)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

列名'Profit_£'包含FOR XML所需的无效XML标识符; '£'(0x00A3)是第一个出错的角色.

问题是我需要一个原始名称列.

我怎么能解决这个问题呢?

Ale*_* K. 5

不是法律有包含节点名£的象征,因此,即使你能说服MSSQL让你,不管你用得到的XML可能会被拒绝做.

如果你想要XML并且不关心它的结构是否很糟糕,那么你必须将常规结果集返回到你的.net应用程序并手动构建一个xml字符串.

最好不要£在第一时间使用; ... as [Profit_Pounds].

根据你的需要,FOR XML RAW会自动将£转换为_x ??? 名称.