2012-02-21 67 views
0

我在這裏使用Android的SQLiteDatabase類非常沮喪。
我有一個名爲db.sqlite的測試數據庫,我使用SQLiteOpenHelper類將其導入data/data/[my.app.namespace]/databse文件夾。 (演示here
現在我想能夠查詢該數據庫。我應該爲此創建另一個助手類嗎?我的意思是如果要使用execSQL方法,我應該使用SQLiteDatabase類,但無法創建它的子類!
我正在進行Android編程。Android SQLiteDataBase:如何讀取數據集?

P.S:我猜想SELECT聲明是完全不同的。我想獲取一些數據。我應該怎麼做?

回答

0

在你的數據庫類,如果你希望能夠使用execSQL或插入/更新/刪除您需要添加功能,像這樣:

public boolean executeQuery(String tableName,ContentValues values){ 
    return execQuery(tableName,values); 
} 

private boolean execQuery(String tableName,ContentValues values){ 
    sqliteDb = instance.getWritableDatabase(); 
    sqliteDb.beginTransaction(); 
    sqliteDb.insert(tableName, "null", values); 
    sqliteDb.setTransactionSuccessful(); 
    sqliteDb.endTransaction(); 
    return true; 
} 

public boolean updateSQL(String tableName,ContentValues values, String where, String[] args){ 
    return updateData(tableName,values,where,args); 
} 

private boolean updateData(String tableName,ContentValues values, String where, String[] args){ 
    sqliteDb = instance.getWritableDatabase(); 
    sqliteDb.update(tableName, values, where, args); 
    return true; 
} 

public boolean deleteSQL(String tableName,String where, String[] args){ 
    return deleteData(tableName, where, args); 
} 

private boolean deleteData(String tableName,String where, String[] args){ 
    sqliteDb = instance.getWritableDatabase(); 
    sqliteDb.beginTransaction(); 
    sqliteDb.delete(tableName, where, args); 
    sqliteDb.setTransactionSuccessful(); 
    sqliteDb.endTransaction(); 
    return true; 
} 

public Cursor executeSQLQuery(String query){ 
    Cursor c = sqliteDb.rawQuery(query,null); 
    return c; 
} 

public void executeSQL(String query){ 
    sqliteDb.execSQL(query); 
} 

我使用的是同一類,我已經加入這些功能和他們正在工作。

+0

'SELECT'語句怎麼樣? – 2012-02-21 13:18:24

+0

您必須爲SELECT語句編寫自己的quesries,並且可以使用'executeSQLQuery'從'Cursor'查詢查詢中的數據。 – 2012-02-21 13:20:00