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

标签 java android sqlite

<分区>

我的表是用

创建的
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

关于java - 使用 ContentValues 将以零开头的字符串编号插入字符串列,但始终删除前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18679573/

相关文章:

android - 不区分大小写字母顺序的 SQLite 查询

java - 需要从 eclipse 中触发在 drools guvnor 中创建的规则

java - Spring 批处理 : Write a List to a database table using a custom batch size

java - java中>>>是什么意思

android - 如何保存我的应用程序首选项并在重新安装或更改设备后检索它们

android - 自定义按钮填充和文本大小问题

java - 如何将 JLabel 的所有结果显示到 JFrame

android - 在切换按钮 Android 中打开/关闭 Wifi

Android:内容提供商最佳实践

mysql - SQLite 并发问题破坏交易?