微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 使用ContentValues将以零开头的字符串编号插入到字符串列中,但始终删除前导零

参见英文答案 > Inserting a number as a String into a Text column and SQLite stills removes the leading zero                                    2个
我的桌子是用.创建的

db.execsql(
    "CREATE TABLE periods (" +
    "  vehicle_id INTEGER KEY," +
    "  line_id INTEGER KEY," +
    "  period_id INTEGER PRIMARY KEY AUTOINCREMENT," +
    "  line_code STRING," +
    "  sup_code STRING," +
    "  start_date INTEGER," +
    "  end_date INTEGER" +
    ")"
);

插入数据

ContentValues values = new ContentValues();
values.put("vehicle_id",1);
values.put("line_id",2);
values.put("line_code","0406");
values.put("sup_code"," ");
values.put("start_date",1);
values.put("end_date",24);
db.insert("periods",null,values);

但是当我用数据检索数据时

Cursor cPeriods = db.rawQuery("SELECT * FROM periods WHERE vehicle_id=" + vehicleId,null);
System.err.printf("sqlite: ### Get line_code = \"%s\"\n",cPeriods.getString(3));

结果总是“406”

如何解决这个问题?
我不想做一个丑陋的修复,例如在插入之前在“0406”前放置一些符号,并在检索后将其删除.

最佳答案
STRING不是有效的sqlite类型,因此line_code使用认类型INTEGER – 尝试更改CREATE TABLE语句以使用TEXT类型代替STRING.

原文地址:https://www.jb51.cc/android/430942.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐