检索数据SQLite数据库问题

时间:2015-10-20 20:14:32

标签: android sqlite

我在名为CalDatabaseHelper的单独类中创建一个包含4个String列的数据库:

public void onCreate(SQLiteDatabase db) {
    updateDatabase(db,0,DATABASE_VERSION);

}

private static void updateDatabase(SQLiteDatabase db, int olderversion, int newerVersion){
    if (olderversion < 1){
        db.execSQL("CREATE TABLE CAL (_id TEXT PRIMARY KEY,"
        + "ACTIVITY1 TEXT, "
        + "ACTIVITY2 TEXT"
        + "ACTIVITY3 TEXT);");
    }
}

private static void insertIntoDatabase(SQLiteDatabase db, String primaryKey, String activityOne, String activityTwo, String activityThree){
    ContentValues values = new ContentValues();
    values.put("_id",primaryKey);
    values.put("ACTIVITY1",activityOne);
    values.put("ACTIVITY2",activityTwo);
    values.put("ACTIVITY3",activityThree);
    db.insert("CAL",null,values);

}

我在名为约会的活动中添加数据。现在,我只是添加到_id(一个String变量)和ACTIVITY1(一个来自用户输入和EditText的String变量)列:

                SQLiteOpenHelper sqLiteOpenHelper = new CalDatabaseHelper(Appointments.this);
                SQLiteDatabase db = sqLiteOpenHelper.getWritableDatabase();
                values.put("_id",primaryKey);
                values.put("ACTIVITY1", activityOne);
                db.insert("CAL", null, values);
                db.close();

我尝试在Adapter Class中检索此数据。单击窗口小部件后,将打开一个数据库,Cursor将找到两列(_id,ACTIVITY1)并检索数据。该类包含用于搜索数据库的primaryKey数据:

        SQLiteOpenHelper sqLiteOpenHelper = new CalDatabaseHelper(context);
        db = sqLiteOpenHelper.getReadableDatabase();

        cursor = db.query("CAL",
                new String[]{"_id","ACTIVITY1"},
                "_id = ?",
                new String[]{month_day_year},
                null, null, null);

        if (cursor.moveToFirst()){
            String actOne = cursor.getString(0);
            activityOne.setText(actOne);

        }else{
            Toast.makeText(context, "NOTHING FOUND DURING OPEN", Toast.LENGTH_LONG).show();
        }
        cursor.close();
        db.close();

到目前为止,一切正常。我可以使用cursor.getString(0)从第一列(_id)中检索数据。

当我从第二列(ACTIVITY1)中检索数据时,我不断得到一个空字符串。例如,cursor.getString(1)返回“”。这应该是我的用户在约会活动中输入的数据。数据显然放在该类中的ContentValues中,然后放入数据库。知道为什么没有什么东西出现吗?是因为我使用db.insert()而不是我在databaseHelper类中创建的方法insertIntoDatabase()?然后如何插入主键呢?谢谢

0 个答案:

没有答案