【问题标题】:Obtaining the primary key identifier value for a record (SQL)获取记录的主键标识符值 (SQL)
【发布时间】:2020-09-15 12:14:20
【问题描述】:

我一直在做一个学校项目——一个应用程序。我一直在为我的数据库使用 sql db。 对于一项特定任务,我想使用客户的用户名(唯一的)来查找相应的 customer_id 值(自动递增整数主键)用于其他目的。 我使用的代码如下所示:

public int getCustomerid(String username){

        SQLiteDatabase db = this.getWritableDatabase();
        Cursor resultset = db.rawQuery("SELECT cust_code FROM Customer where username='" + username+ "'", null);
        resultset.moveToFirst();
        return resultset.getInt(0);
    }

我已经使用这种格式的查询来获取其他值,例如密码、电子邮件 ID 等。但是,当我尝试使用这种方法来提取主键值时,我得到一个空指针异常错误。 有没有办法解决这个问题?

谢谢,

【问题讨论】:

  • 学习使用参数!不要使用常量值处理查询字符串。如果您正在学习 SQL,这一点尤其重要。您想了解编写应用程序的安全方法。
  • 加上异常会很有用
  • @GordonLinoff 很抱歉,您能否详细说明一下您的解释?我们的老师没有给我们任何这些项目的学习材料,所以我从不同的文章/视频中挑选了一些方法和结构。

标签: sql android-studio primary-key


【解决方案1】:

我不知道为什么会这样:

public int getCustomerid(String username){

    SQLiteDatabase db = this.getWritableDatabase();
    String SQLquery = "SELECT cust_code FROM Customer where username='" + username+ "'"
    Cursor resultset = db.rawQuery(SQLquery, null);
    resultset.moveToFirst();
    return resultset.getInt(0);
}

我现在看到了创建参数如何增加清晰度。非常感谢 Gordon Linoff 先生。

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 2013-05-27
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    相关资源
    最近更新 更多