【问题标题】:Syntax error near "#5018" in android sqlite databaseandroid sqlite 数据库中“#5018”附近的语法错误
【发布时间】:2016-01-28 11:18:29
【问题描述】:

在 Android 应用程序中,我有一个数据库来存储联系人。在那,我有一个“文本”类型的“数字”列。
执行以下查询时出现syntax error near: "#5018" (code 1) 错误:

string passedNumber = "#5018"; db.delete("Contact_Table, "Number=" + passedNumber, null);


但是,如果我使用以下引用的数字,例如:
db.delete("Contact_Table, "Number='" + passedNumber + "'", null);
那么它就可以正常工作了。

我担心的是为什么尽管我有 Number 列的 Text 类型,但它会给出错误。

【问题讨论】:

  • 你应该传递single quote中的值
  • 但是为什么呢? Number 列是字符串类型,当我仅在 Number 中传递数字时,它正在查找,没有任何其他字符。如果我在没有single quote 的情况下进行查询,每次都会出错。
  • 尝试读取日志调用堆栈错误:)

标签: android sqlite sql-delete


【解决方案1】:

因为#5018 在语法上不是数字或任何其他有效结构。当您将其括在单引号中作为'#5018' 时,它会变成字符串文字,并且在语法上是正确的。 5018 将是语法上有效的数字文字。

列类型关联与文字语法无关。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 2013-08-12
相关资源
最近更新 更多