'<'附近的语法不正确.标签"xmlns"已经被声明.标签名称在查询批处理或存储过程中必须唯一 [英] Incorrect syntax near '<'. The label 'xmlns' has already been declared. Label names must be unique within a query batch or stored procedure

查看:41
本文介绍了'<'附近的语法不正确.标签"xmlns"已经被声明.标签名称在查询批处理或存储过程中必须唯一的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从xml格式的数据库中获取一个字符串,并尝试使用以下查询更新xml:

I am getting a string from a database that is in xml format and trying to update the xml with the following query:

ExecuteNonQuery("Update Logs SET Message = " + encryptedMessage + " WHERE ID = " + message.Id);

但是它给了我错误信息:

but it gives me the error message:

'<'附近的语法不正确.标签"xmlns"已经被声明.标签名称在查询批处理或存储过程中必须唯一.对象或列名称丢失或为空.对于SELECT INTO语句,请验证每个列都有一个名称.对于其他语句,请查找空别名.不允许将别名定义为"或[].将别名更改为有效名称.对象或列名称丢失或为空.对于SELECT INTO语句,请验证每个列都有一个名称.对于其他语句,请查找空别名.不允许将别名定义为"或[].将别名更改为有效名称.对象或列名称丢失或为空.对于SELECT INTO语句,请验证每个列都有一个名称.对于其他语句,请查找空别名.不允许将别名定义为"或[].将别名更改为有效名称.对象或列名称丢失或为空.对于SELECT INTO语句,请验证每个列都有一个名称.对于其他语句,请查找空别名.不允许将别名定义为"或[].将别名更改为有效名称.对象或列名称丢失或为空.对于SELECT INTO语句,请验证每个列都有一个名称.对于其他语句,请查找空别名.不允许将别名定义为"或[].将别名更改为有效名称.

我觉得这可能与报价有关,但我不确定.我尝试过不同的选项,例如单引号,混合符等.

I have a feeling it might have something to do with the quotes, but I am not sure. I have tried different options like single quotes, mixture,etc.

例如,如果我这样做:

ExecuteNonQuery("Update Logs SET Message = " + encryptedMessage.Replace('"','\'')+ " WHERE ID = " + message.Id);

这将把消息中的双引号永久更新为单引号吗?我不想这样做.

Would this permanently update the double quotes in the message to single quotes. I don't want to do this.

推荐答案

是的,您似乎缺少该消息周围的引号:

Yes, it looks like you are missing the quotes around the message:

ExecuteNonQuery("Update Logs SET Message = '" + encryptedMessage + "' WHERE ID = " + message.Id);

XML本身也可能包含单引号,因此您可能需要转义那些单引号(例如,将消息中的一个单引号更改为两个单引号)

The XML itself probably has single quotes in it as well, so you may need to escape those (e.g. change one single quote to two single quotes inside the message)

这篇关于'&lt;'附近的语法不正确.标签"xmlns"已经被声明.标签名称在查询批处理或存储过程中必须唯一的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆