Позвольте мне начать с того, что да, я удаляю приложение из эмулятора каждый раз, когда я пытаюсь его повторить !!
Хорошо, надеюсь, это довольно просто. Я изучаю Android SQLITE и ниже очень простую базу данных, в которой я устанавливаю текстовое значение по умолчанию. Естественно, можно подумать, что, установив столбец по умолчанию, тогда Sqlite автоматически вставит строку, верно? независимо от того, я продолжаю получать такой столбец, как ошибка myColumn. пожалуйста, помогите!
public class DatabaseTestHelper extends SQLiteOpenHelper{
private static final String DB_NAME = "DB_NAME";
private static final int DB_VERSION = 1;
private static final String DATABASE_CREATE =
"CREATE TABLE SORT_TABLE (_id INTEGER PRIMARY KEY AUTOINCREMENT,
myColumn TEXT DEFAULT 'IT WORKED!!');";
public DatabaseTestHelper(Context context){
super(context,DB_NAME,null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
это инстанцированные кнопки на клике
public void onClickYo(View view) {
new AsyncTaskTest().execute(true);
}
here is the Async in the same class
private class AsyncTaskTest extends AsyncTask<Boolean,Void,String>{
String success;
@Override
protected String doInBackground(Boolean... sortTests) {
try {
SQLiteOpenHelper dbHelper =
new DatabaseTestHelper(titleActivity.this);
SQLiteDatabase theDb = dbHelper.getReadableDatabase();
Cursor cursor = theDb.query(
"SORT_TABLE",new String[]{"myColumn"},
null,null,null,
null,null);
if (cursor.moveToFirst()) {
success = cursor.getString(0);
} else {
success = "MOVE TO FIRST TRIPPIN";
}
cursor.close();
theDb.close();
} catch(SQLiteException e){
e.printStackTrace();
}
return success;
}
@Override
protected void onPostExecute(String dbString) {
textView.setText(dbString);
}
}
}
09-05 18:32:31.935 10341-10387/com.hf.mysquad E/SQLiteLog: (1) no such column: myColumn