Я работаю над проектом, который содержит таблицы в SQL и показывает их в ListViews, я получаю «column» _id «не существует», когда я пытаюсь добраться до активность, содержащую listview, я проверил здесь другие ответы, и все говорят, что я должен иметь colum с именем «_id», и я делаю, что еще может вызвать эту ошибку?столбец «_id» не существует с использованием SQLite с android
это мой константы класса
final static String DB_CLIENTS_ID = "_id";
final static String DB_CLIENTS_NAME = "name";
final static String DB_CLIENTS_BALANCE = "balance";
final static String DB_CLIENTS_IDNUM = "idNum";
final static String DB_CLIENTS_TYPE = "type";
здесь функция хендлер, которая получает curser:
public Cursor queryClients(){
db = dbOpenHelper.getReadableDatabase();
Cursor cursor = db.query(dbConstants.TABLE_NAME_CLIENTS,
null, null, null, null, null,
dbConstants.DB_CLIENTS_NAME+ " ASC");
return cursor;
}
Вот фрагмент кода, который использует curser сделать ListView:
dbhendler = new dbHendler(this);
Cursor c = dbhendler.queryClients();
startManagingCursor(c);
String[] from = new String[] {dbConstants.DB_CLIENTS_ID, dbConstants.DB_CLIENTS_NAME,dbConstants.DB_CLIENTS_BALANCE};
int[] to = new int[] {R.id.account_list_id_number, R.id.account_list_client_name, R.id.account_list_balance};
adapter = new SimpleCursorAdapter(this, R.layout.account_list_line, c, from, to);
ListView lv = (ListView) findViewById(R.id.listView1);
lv.setAdapter(adapter);
Что может быть проблемой, кроме того, что у вас нет колла, называемого «_id»?
редактировать:
здесь журнал кошки:
01-28 10: 00: 31,806: E/AndroidRuntime (27937): java.lang.RuntimeException: Невозможно запустить активность ComponentInfo {ком. ziv.bank_app/com.ziv.bank_app.ClientListActivity}: java.lang.IllegalArgumentException: колонка '_id' не существует
редактировать:
код для создания таблицы:
public void onCreate(SQLiteDatabase db) {
String sql1 = ""
+ "CREATE TABLE "+ dbConstants.TABLE_NAME_CLIENTS+ " ("
+dbConstants.DB_CLIENTS_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+dbConstants.DB_CLIENTS_NAME + " TEXT,"
+dbConstants.DB_CLIENTS_IDNUM + " INTEGER,"
+dbConstants.DB_CLIENTS_TYPE + " TEXT,"
+dbConstants.DB_CLIENTS_BALANCE + " REAL"
+ ")";
db.execSQL(sql1);
включают в себя возможно 'выход logcat'! –
Добавить код для создания таблицы? –
@PareshMayani Mayani Я добавил первые несколько строк logcat –