Я пытаюсь создать приложение для Android с простым db (используя встроенный sqlite db). я создал класс, который расширяет SQLiteOpenHelper:«column не существует» при создании db
public class DatabaseHandle extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "pass_db";
public static final String ALIAS_NAME = "name";
public static final String USER_NAME = "user";
public static final String PASSWORD = "password";
public static final String TABLE_NAME = "passwords";
public DatabaseHandle(Context context) {
super(context, DATABASE_NAME, null, 2);
}
@Override
public void onCreate(SQLiteDatabase database) {
Log.i("DatabaseHandle","inside onCreate");
database.execSQL("CREATE TABLE "+ TABLE_NAME +" (_id INTEGER PRIMARY KEY AUTOINCREMENT," +
" "+ALIAS_NAME+" TEXT, " + " "+USER_NAME+" TEXT, "+PASSWORD+" TEXT);");
ContentValues values = new ContentValues();
values.put(ALIAS_NAME, "Bank");
values.put(USER_NAME, "maya123");
values.put(PASSWORD, "xyz123");
database.insert(TABLE_NAME, ALIAS_NAME, values);
}
и пытается получить эти данные с SimpleCurserAdapter:
public class MainActivityPasswords extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_list);
database = (new DatabaseHandle(this)).getWritableDatabase();
passwordCursor = database.rawQuery("SELECT _id, name, password FROM passwords ORDER BY name", null);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.row,
passwordCursor,
new String[]{DatabaseHandle.ALIAS_NAME, DatabaseHandle.USER_NAME, DatabaseHandle.PASSWORD},
new int[]{R.id.alias, R.id.user_name, R.id.password}, 0);
setListAdapter(adapter);
registerForContextMenu(getListView());
}
(это частичный код конечно)
при выполнении кода я get:
Java.lang.IllegalArgumentException: Column 'user' не существует.
Почему это? я могу ясно видеть, что у меня есть «пользовательский» столбец при открытии самого файла db.
Помощь!
не существует в курсоре ... – Selvin
вам только получите результат, который вы запрашиваете, в этом случае столбец _id, имя и пароль –
Я думаю, что нет оснований понижать этот вопрос. Вопрос показывает, вероятно, разочаровывающая попытка новичка, пытающегося учиться, также ясно и ясно, показывает попытку и ошибку – nKn