让我先说,是的,我已经从我的模拟器卸载应用程序,每次我重新尝试!!
好吧,希望这个很简单。我正在学习androidsqlite,下面是一个非常简单的数据库,我将文本值设置为默认值。很自然,人们会认为通过设置一个列默认值,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) {
}
}
这是一个实例化的按钮onClick
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