此代码检查数据库是否存在,如果不存在则打开并创建表。但是之后,尝试从表中读取不会导致此类表异常。
public class MuscleActivity extends AppCompatActivity {
SQLiteDatabase fitnessdb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_muscle);
if (!getApplicationContext().getDatabasePath("fitnessdb").exists()) ;
{
createDB();
}
Cursor resultSet = fitnessdb.rawQuery("SELECT * FROM exercises", null);
resultSet.moveToFirst();
Log.d("stat", resultSet.getString(0));
}
public void createDB() {
fitnessdb = openOrCreateDatabase("fitnessdb", MODE_PRIVATE, null);
fitnessdb.execSQL("CREATE TABLE IF NOT EXISTS \"exercices\" (\"_id\"\tINTEGER PRIMARY KEY AUTOINCREMENT,\"name\" TEXT,\"muscle_group\" TEXT,\"reps\" INTEGER,\"img1\"\tTEXT,\"img2\" TEXT,\"info\"\tTEXT);");
}
}
答案 0 :(得分:0)
我不确定您是否知道查询中的错字,但您将运动拼写为运动。 尝试解决打字错误,然后重试?
fitnessdb.execSQL("CREATE TABLE IF NOT EXISTS \"exercises\" (\"_id\"\tINTEGER PRIMARY KEY AUTOINCREMENT,\"name\" TEXT,\"muscle_group\" TEXT,\"reps\" INTEGER,\"img1\"\tTEXT,\"img2\" TEXT,\"info\"\tTEXT);");