SQLite Insert Query将0修剪为插入字符串的第一个字符

时间:2018-02-20 15:51:41

标签: android database sqlite android-studio android-sqlite

我有一个插入查询,它会在数据库中添加联系人。但是,我在插入一个以“0”作为第一个字符的字符串时遇到了问题。

例如我输入:09127400049
  它现在将保存为:     9127400049

public void addEmergencyContacts(String name, long number, String email, String relationship) {
    ContentValues cv = new ContentValues();
    cv.put("NAME", name);
    cv.put("NUMBER", number);
    cv.put("EMAIL", email);
    cv.put("RELATIONSHIP", relationship);

    this.getWritableDatabase().insertOrThrow("ELSA_EMERGENCY_CONTACTS", "", cv);
}

以下是我插入联系人的方式

controller.addEmergencyContacts(emergencyContactET.getText().toString(), Long.parseLong(emergencyNumberET.getText().toString()), emergencyEmailET.getText().toString(), relationship);

你知道那里的任何解决方案或建议

1 个答案:

答案 0 :(得分:1)

要插入0字符,您需要执行以下操作: -

  • 定义 NUMBER 列,其列类型为 TEXT ,如果它尚未定义为TEXT类型。
  • 更改 addEmergencyContacts 方法的签名,以便第二参数字符串
    • 即。将public void addEmergencyContacts(String name, long number, String email, String relationship) {.....更改为 public void addEmergencyContacts(String name, String number, String email, String relationship) {.....
  • 将每次调用更改为 addEmergencyContacts ,将第二个参数的值作为字符串传递,确保该字符串中包含前导0。
  • 任一
    • 删除应用程序的数据或
    • 卸载应用
  • 重新运行App。

理由是为了灵活高效的SQLite: -

  • 具有灵活的列类型
  • 允许大多数列存储任何类型的数据
  • 使用试图以尽可能少的字节存储数据的规则。

这里没有详细介绍细节Datatypes In SQLite Version 3的链接。