Вставьте номер строки, начинающийся с нуля, в столбец строк, используя ContentValues, но ведущий ноль всегда удаляется

Моя таблица была создана с помощью

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 .

Вы должны исследовать регистрационную часть sql, если код строки зарегистрирован как целочисленный тип, нуль будет удален.