我想在android中創建一個簡單的數據庫,但數據庫沒有創建,我不知道爲什麼。我讀了很多解決方案,但沒有任何幫助Android數據庫中的SQLite數據庫不會創建
這是SQLiteOpenHelper擴展分類
public class TodoDB extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "todo.db";
public TodoDB(android.content.Context context){
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String query = "CREATE TABLE "+ TaskSchema.TaskColumns.TABLE_NAME + "(" +
TaskSchema.TaskColumns.ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
TaskSchema.TaskColumns.TITLE + " TEXT NOT NULL, " +
TaskSchema.TaskColumns.INFORMATION + " TEXT NOT NULL, " +
TaskSchema.TaskColumns.DATE + " TEXT NOT NULL " +
");";
sqLiteDatabase.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
public void addTask()
{
ContentValues values = new ContentValues();
values.put(TaskSchema.TaskColumns.TITLE, "l");
values.put(TaskSchema.TaskColumns.INFORMATION, "temporal");
values.put(TaskSchema.TaskColumns.DATE,"20-8-16");
this.getWritableDatabase().insert(TaskSchema.TaskColumns.TABLE_NAME,null,values);
}
public String getTask()
{
String args[] = {"l"};
String columns[] = {TaskSchema.TaskColumns.TITLE};
Cursor c = this.getReadableDatabase().query(TaskSchema.TaskColumns.TABLE_NAME,columns, TaskSchema.TaskColumns.TITLE + " LIKE ?",args,null,null,null);
String result = c.getString(c.getColumnIndex(TaskSchema.TaskColumns.TITLE));
return result;
}
}
這是活動類
public class MainActivity extends AppCompatActivity {
Button addButton;
Button deleteButton;
TodoDB db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addButton = (Button)findViewById(R.id.addButton);
TodoDB db = new TodoDB(this);
db.addTask();
String test = db.getTask();
Toast.makeText(this, test,Toast.LENGTH_SHORT);
}
}
普萊斯幫助。
額外信息:我使用Android監視器來查找數據庫,但不在虛擬設備中,我在手機中運行應用程序,當我查找數據庫時,它不存在。當我試圖做一個查詢應用程序關閉。
你怎麼知道數據庫沒有被創建? – lelloman
嘗試在查詢結尾處添加分號(;)。 查詢現在應該是這樣: 串查詢= 「CREATE TABLE 」+ TaskSchema.TaskColumns.TABLE_NAME + 「(」 + TaskSchema.TaskColumns.ID +「 INTEGER PRIMARY KEY AUTOINCREMENT,」 + TaskSchema.TaskColumns.TITLE +「TEXT NOT NULL,「+ TaskSchema.TaskColumns.INFORMATION +」TEXT NOT NULL「,+ TaskSchema.TaskColumns.DATE +」TEXT NOT NULL「+ 」);「; –
@lelloman我使用Android監視器來查找數據庫,但不在虛擬設備中,我在手機中運行應用程序,並且在查找數據庫時它不存在。當我試圖做一個查詢應用程序關閉。 –