【问题标题】:Compair Text value to String value in SQLITE Android [duplicate]将文本值与 SQLITE Android 中的字符串值进行比较 [重复]
【发布时间】:2018-04-18 17:10:02
【问题描述】:

我正在做一个项目,我需要设置一个数据库供用户在 android 上使用我的应用程序,为此我创建了两个活动:一个将创建用户(注册活动),另一个活动将允许登录部分... 我的问题是,当我将从我的 EditText 视图收集的字符串值与我的数据库中内容数据类型为 (Text) 的列 (user_name) 进行比较时,我遇到了一个错误,它完全忽略了我的选择之后发生的内容...哪里... = 这是代码,希望有人知道这个问题。

 name = (EditText) findViewById(R.id.user_name);
final String verify = name.getText().toString().trim();
Cursor cs = db1.rawQuery("select * from user where name_user="+verify,null);

在这些指令之后,我使用了一个“If”语句,只要用户的名称已经存在或不存在,我就会显示一个 toast,我尝试用 try catch 包围我的代码,但这只是忽略了错误,在我的表中,我们插入一个空的用户名... 这是错误:

   android.database.sqlite.SQLiteException: near "=": syntax error (code1):while compiling: select * from user where name_user=

我知道我的问题是(验证)变量,但我不知道如何将字符串值设为文本值,以便接受我的 sqlite 命令 提前感谢您的回答。

【问题讨论】:

  • 特别注意Suragch的answer
  • 所有这些帖子与我的问题有什么关系?我没有看到任何关系,也没有任何解决我的问题的方法......对不起。
  • 您的应用因查询错误而崩溃。链接的帖子解释了如何编写查询(例如,使用 LIKE 但也使用“=”)。因此,在理解了另一篇文章之后,您将能够在必要时借助调试器来解决您的问题。如果不是这种情况,请编辑您的问题以解释您尝试了什么、结果如何等。然后我们可以尝试重新提出问题。

标签: android database sqlite types


【解决方案1】:
Cursor cs = db1.rawQuery("select * from user where name_user like '"+verify"'",null);

我希望这会有所帮助。

【讨论】:

  • 谢谢,它确实帮助了我,但我不明白为什么“=”不起作用,我正在尝试在 android 上学习 SQLite,但我不明白为什么在这种情况下它不起作用......你能解释一下吗?谢谢。
  • 我认为 sql 不使用相等运算符比较字符串,但它使用 like,它与大多数 DBMS 相同
猜你喜欢
  • 1970-01-01
  • 2015-08-14
  • 1970-01-01
  • 2012-10-06
  • 2015-11-15
  • 1970-01-01
  • 2014-11-08
  • 2021-07-10
  • 2021-10-02
相关资源
最近更新 更多