【问题标题】:SQLException: unclosed quotation mark but no quotation mark foundSQLException: 未闭合的引号但未找到引号
【发布时间】: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 的一些相关细节?

标签: c# sql exception


【解决方案1】:

试试

     select * from Voucher where VoucherNo like '%''''%'

' 是打开/关闭字符串字符,所以当你想要 ' 在字符串之间时,你会

需要其他'字符'的转义序列

对于 2 个 ' 字符,两个 esc 字符 '

即。 ''''

【讨论】:

  • 稍微解释一下会有帮助。
  • OP 需要一个(转义的)single 引号来查看是否有包含引号的 VoucherNo 值。
猜你喜欢
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 2021-09-15
  • 1970-01-01
相关资源
最近更新 更多