2012-02-21 8 views
0

ここでは、AndroidのSQLiteDatabaseクラスを使用して非常に不満です。
私はという名前のテストデータベースを持っています。このデータベースは、フォルダにSQLiteOpenHelperクラスを使用してインポートしました。 (デモ済み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」文はどうですか? –

+0

SELECT文には独自のクエスチョンを書く必要があり、 'executeSQLQuery'を使って' Cursor'を使ってクエリからデータを取得することができます。 –

関連する問題