【发布时间】:2016-11-20 21:37:34
【问题描述】:
字符串'HD10'后的非右引号。
我已经阅读了很多针对此错误的解决方案,并且由于 (') 已明确说明。但是我已经在我的 sql 中搜索了伟大的撇号。
select * from Voucher where VoucherNo like '%''%'
它什么都没有出来。这实际上意味着一件好事。我的数据很棒。但坏消息是,我仍然无法解决这个问题。
我也搜索了任何截断或重复的内容,我不知道,希望它显示在某个地方,即使我知道那不是关于什么的。这显示没有截断或重复的迹象。
如果有人真的知道一些事情(除了给出相同的建议来做我已经做过的事情),那将有很大帮助。谢谢你。
-----已编辑-------
这是我的程序代码
public override VoucherCollection GetVoucherWhere(string whereCondition)
{
VoucherCollection VoucherCollection = new VoucherCollection();
Database db = SqlDataHelper.CreateConnection(_sqlConnectionString);
DbCommand dbCommand = db.GetStoredProcCommand("SP_SELECT_Voucher_WHERE");
db.AddInParameter(dbCommand, "whereExpression", DbType.String, " " + whereCondition);
using (IDataReader dataReader = db.ExecuteReader(dbCommand))
**我不认为错误来自代码,因为这个程序已经运行了 2 年。但是,它只是在我的客户运行新的优惠券以获得奖金之后才出现的。 (而且运行这个东西的人已经调到不同的部门了)
where 语句显示了 DB 中的所有凭证。 db 命令显示异常。
我使用的是 sql server 2008
【问题讨论】:
-
您使用的是什么版本的 SQL,您要匹配什么字符串?另外,您能否包含相关的 .NET 代码,因为那里可能也会发生一些转义?
-
从 C# 代码运行查询时是否会引发异常?如果是,您可以发布具有此行为的代码吗?
-
我的一张桌子上的
like '%''%'没有问题。假设您正在搜索 ONE 单引号。 -
但也许你的sql中有一些隐藏字符?
-
您能否显示导致错误的
whereCondition的值以及SP_SELECT_Voucher_WHERE的一些相关细节?