当我只有一个要搜索的ID时,我已经能够从SQLite数据库获取记录。例如,我已经将我的联赛ID传递给了礼帽,并且列出了与此ID相关的所有礼帽。现在,当我为此常礼帽创建系列赛时,我要将联赛ID和常礼帽ID传递到系列表,以确保我只得到某个联赛中属于该礼帽的系列赛。
为了列出圆顶硬礼帽,我使用了以下代码;
public Bowler getBowler(String leagueId) {
//Get Readable Database If We Are Not Inserting Anything
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(Bowler.TABLE_NAME,
new String[]{Bowler.COLUMN_ID, Bowler.COLUMN_LEAGUE_ID, Bowler.COLUMN_NAME, Bowler.COLUMN_TIMESTAMP},
Bowler.COLUMN_LEAGUE_ID + "=?",
new String[]{String.valueOf(leagueId)}, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
//Prepare Bowler Object
Bowler bowler = new Bowler(
cursor.getInt(cursor.getColumnIndex(Bowler.COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(Bowler.COLUMN_LEAGUE_ID)),
cursor.getString(cursor.getColumnIndex(Bowler.COLUMN_NAME)),
cursor.getString(cursor.getColumnIndex(Bowler.COLUMN_TIMESTAMP)));
//Close Database Connection
cursor.close();
return bowler;
}
为了列出保龄球系列赛,我尝试了以下方法;
public Series getSeries(String leagueId, String bowlerId) {
//Get Readable Database If We Are Not Inserting Anything
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query( Series.TABLE_NAME,
new String[]{Series.COLUMN_ID, Series.COLUMN_LEAGUE_ID, Series.COLUMN_BOWLER_ID, Series.COLUMN_NAME, Series.COLUMN_SERIES_AVERAGE, Series.COLUMN_TIMESTAMP},
Series.COLUMN_LEAGUE_ID + Series.COLUMN_BOWLER_ID + "=?",
new String[]{String.valueOf(leagueId)}, null, null, null, null)
new String[]{String.valueOf(bowlerId)}, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
//Prepare Bowler Object
Series series = new Series(
cursor.getInt(cursor.getColumnIndex(Series.COLUMN_ID)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_LEAGUE_ID)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_BOWLER_ID)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_NAME)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_SERIES_AVERAGE)),
cursor.getString(cursor.getColumnIndex(Series.COLUMN_TIMESTAMP)));
//Close Database Connection
cursor.close();
return series;
}
我知道这是不正确的,而且我不知道如何正确地格式化。
我不确定这是否是正确的方法,或者是否有另一种方法可以完成同一件事,这可能会更容易。
您的选择查询似乎不正确。您试图从两个单独的列中进行选择。
您有:“ WHERE series_idbowler_id =?”
它看起来像是您想要的是“” WHERE series_id =?AND bowler_id =?”
尝试像这样格式化查询:
db.query( Series.TABLE_NAME,
new String[]{Series.COLUMN_ID, Series.COLUMN_LEAGUE_ID, Series.COLUMN_BOWLER_ID, Series.COLUMN_NAME, Series.COLUMN_SERIES_AVERAGE, Series.COLUMN_TIMESTAMP},
Series.COLUMN_LEAGUE_ID + "=?" + " AND " + Series.COLUMN_BOWLER_ID + "=?",
new String[]{String.valueOf(leagueId), String.valueOf(bowlerId)}, null, null, null, null);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句