私はアンドロイドでSQLiteと対戦しており、いくつかの問題が解決しました。問題はhereとhereです。selectionArgsエラーはカラムが存在しないと言います
ここで、特定の状態に対してDISTINCT領域を選択します。私の最初のRecyclerView画面には、次のコードで状態が正常に表示されます。
public Cursor getRegionData(String whichState) {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String [] sqlSelect = {"0 _id", "region" };
String theState = whichState;
String sqlTables = "Reefs";
qb.setTables(sqlTables);
qb.setDistinct(true);
Cursor c = qb.query(db, sqlSelect, theState , null , null, null, null);
// (table, columms to return, colums for the where clause, values for the where clause, null, null, null)
c.moveToFirst();
return c;
}
そして、それが仕事と私にこのエラーメッセージが与えていません:
Caused by: android.database.sqlite.SQLiteException: no such column: Tasmania (code 1): , while compiling: SELECT DISTINCT 0 _id, region FROM Reefs WHERE (Tasmania)
私はを選択を今すぐ
public Cursor getStateData() { SQLiteDatabase db = getReadableDatabase(); SQLiteQueryBuilder qb = new SQLiteQueryBuilder(); String [] sqlSelect = {"0 _id", "state" }; String sqlTables = "Reefs"; qb.setTables(sqlTables); qb.setDistinct(true); Cursor c = qb.query(db, sqlSelect, null, null, null, null, null); c.moveToFirst(); return c; }
は、私は次のコードを使用状態ごとに別個の領域を取得しますタスマニアリストから
タスマニアが文字列引数
として渡されましたwhichState。
私はpurly SQL用語で問題を記述するためだったのであれば、それはこのように書きます:私は間違って
SELECT
region //column in my table called region
FROM
Reefs // table in my database
WHERE
state = [the state selected] //column in my table called **state** which I pass in with the varible **whichState**
何をしているのですか?
なぜ「0」(定数)が選択されていますか? –
私はSQLiteAssetHelperを使用していますが、SQLiteの初心者はこれらの人たちのソリューションを使用しています:https://github.com/jgilfelt/android-sqlite-asset-helper – timv