我有一个SQL数据库,可以将服务器中的信息存储到其中。这是我存储数据的代码,
public void addCard(String did, String cid, String first, String second) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_CARD_DID, did); // deck id
values.put(KEY_CARD_CID, cid); // card id
values.put(KEY_CARD_FIRST, first);
values.put(KEY_CARD_SECOND, second);
// Inserting Row
db.insert(TABLE_CARD, null, values);
db.close(); // Closing database connection
}
在使用此代码
的活动中调用此方法DatabaseHandler db = new DatabaseHandler(getApplicationContext());
db.addCard(json.getString(KEY_DID),
json.getString(KEY_CID),
KEY_FIRST,
KEY_SECOND);
当我这样做时,我没有收到任何错误。当我尝试访问数据时出现问题。这是我访问数据的功能,
public HashMap<String, String> getCard(String cid){
HashMap<String,String> card = new HashMap<String,String>();
String selectQuery = "SELECT * FROM " + TABLE_CARD + " WHERE cid='" + cid + "'";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
cursor.moveToFirst();
if(cursor.getCount() > 0) {
card.put("did", cursor.getString(1));
card.put("cid", cursor.getString(2));
card.put("first", cursor.getString(3));
card.put("second", cursor.getString(4));
}
cursor.close();
db.close();
// return card
return card;
}
我使用此代码调用此函数
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
HashMap card;
card = db.getCard(KEY_CID);
dlgAlert.setMessage(card.get("did") + " " + card.get("cid"));
当此代码运行并弹出警告消息时,我会收到null null
的响应。
我不知道我的错误是存储数据还是从数据库中获取数据。
创建表格
用于创建表格的代码
String CREATE_DECK_TABLE = "CREATE TABLE " + TABLE_CARD + "("
+ KEY_CARD_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_CARD_DID + " TEXT,"
+ KEY_CARD_CID + " TEXT,"
+ KEY_CARD_FIRST + " TEXT,"
+ KEY_CARD_SECOND + " TEXT" + ")";
db.execSQL(CREATE_DECK_TABLE);