【问题标题】:Sqlite Parameterized insert query (escape)Sqlite 参数化插入查询(转义)
【发布时间】:2015-04-08 11:20:37
【问题描述】:

您好,我尝试使用 SQLite 参数化查询 但在列名中是一个 DOT (.)

INSERT INTO Data (`test.1`, `test.2`, `test.3`) VALUES (@test.1, @test.3,@test.3)

返回

“SQL 逻辑错误或“.”附近缺少数据库:语法错误”

INSERT INTO Data (`test.1`, `test.2`, `test.3`) VALUES ([@test.1], [@test.3],[@test.3])

返回

"SQL 逻辑错误或缺少数据库 没有这样的列:@test.1"

我怎样才能在转义点的同时仍然使用名称作为参数!?

【问题讨论】:

  • 您是否也为列名尝试了相同的 [ & ]?
  • 不,我没有,让我检查一下!!!不起作用..与第二个示例相同的错误。

标签: sql .net sqlite system.data.sqlite


【解决方案1】:

SQLite 中的“正确”转义字符是双引号:

INSERT INTO Data("test.1", "test.2", "Test.3")
    VALUES ([@test1], [@test3], [@test3])

. 排除在参数名称之外——大概您可以控制它。

SQLite 明确支持与 MySQL 兼容的反引号和与 MS Access 和 SQL Server 兼容的方括号。 (正如您在documentation 中看到的那样。)

【讨论】:

  • oke 希望有一个逃避的解决方案。但我认为这将是最好的解决方案。现在我不再需要括号 [ & ]
猜你喜欢
  • 2017-06-03
  • 1970-01-01
  • 2018-01-02
  • 2012-03-13
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 1970-01-01
相关资源
最近更新 更多