android sqlite create语句不起作用

时间:2019-04-14 12:22:32

标签: android sqlite android-sqlite

此代码检查数据库是否存在,如果不存在则打开并创建表。但是之后,尝试从表中读取不会导致此类表异常。

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);");
}
}

1 个答案:

答案 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);");