You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SQLiteParameter.Add插入数据时撇号转义异常求助

解决SQLite参数化插入带撇号字符串出现双反斜杠的问题

问题根源

你用参数化查询的写法本身是正确的,出现双反斜杠的核心原因是:要插入的description字符串在传入参数之前,已经被转义过一次(比如原本的O'Neil被转成了O\'Neil),参数化查询再次处理转义,最终变成O\\'Neil。

具体解决步骤

  • 预处理输入数据:在将description传入SQLiteParameter之前,先反转义已经被转义的撇号。
    比如在C#里可以这样处理:
    // 移除多余的反斜杠,只保留原始撇号
    description = description.Replace("\\'", "'");
    // 如果是从JSON或前端获取的转义字符串,用专门的解码方法更稳妥
    // 比如Web项目可用:
    // description = System.Web.HttpUtility.JavaScriptStringDecode(description);
    
  • 排查数据来源:检查description的获取环节(比如文本框输入、文件读取、API请求),确认是不是在源头就被额外转义了。比如前端传参时自动转义、读取文件时误处理了转义字符,从根源避免重复转义。
  • 验证原始数据:插入前打印description的原始值,确认是否已经带反斜杠:
    Console.WriteLine($"待插入的description值:{description}");
    
    如果输出里已经有\,说明必须先做反转义再插入。

注意

参数化查询不需要手动处理撇号的转义,你的代码写法完全符合规范,不需要修改参数添加的逻辑,只需要修正输入数据的预处理环节。

内容的提问来源于stack exchange,提问作者BigDataFiles

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:39:52