%userCriteria%のようなLIKE文を使用してデータベースを照会しようとしています。私は(MySQLiteHelperに格納されている)、次の列を持つテーブルを持っている:SQLite LIKEの選択が機能していません
MySQLiteHelper.COLUMN_DESCRIPTION,
MySQLiteHelper.COLUMN_PUB_DATE,
MySQLiteHelper.COLUMN_TITLE,
MySQLiteHelper.COLUMN_USER_SPEC_NAME,
MySQLiteHelper.COLUMN_LINK
は、私が唯一の特定の文字列を含むTITLE列のエントリを返しますクエリを作成したいです。
私は実装しています私の方法は、(それがクエリを実行することになっている)私のdataSourseClassであるが以下のようになります。
public ArrayList<RssItem> read(String selection, String[] selectionArgs, String groupBy, String having, String orderBy) {
ArrayList<RssItem> tasks = new ArrayList<RssItem>();
Cursor cursor = mDatabase.query(MySQLiteHelper.TABLE_NAME, new String[]{allColumns[3]}, selection, selectionArgs, groupBy, having, orderBy);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
RssItem task = cursorToTask(cursor);
tasks.add(task);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return tasks;
}
allColumns:
private String[] allColumns = {
MySQLiteHelper.COLUMN_ID,
MySQLiteHelper.COLUMN_DESCRIPTION,
MySQLiteHelper.COLUMN_PUB_DATE,
MySQLiteHelper.COLUMN_TITLE,
MySQLiteHelper.COLUMN_USER_SPEC_NAME,
MySQLiteHelper.COLUMN_LINK
};
そして、これは私が呼び出しています方法ですが私のアクティビティのreadメソッド:
private void searchDatabase(String searchCriteriaTitle) {
//clear the data from the adapter...
mAdapter.clear();
//get all of the stored records (during the parsing process)...
List<RssItem> items = rssItemDataSource.read(MySQLiteHelper.COLUMN_TITLE + " LIKE ?",new String[]{searchCriteriaTitle},null,null,null);
//if the search criteria is not empty string...
if(!searchedItem.equals("")){
for(int i = 0; i < items.size();i++) {
//search from a match against the user's search criteria...
mAdapter.add(items.get(i));
}
}
//if the search criteria is am empty string...
else{
//read all of the
List<RssItem> allItems = rssItemDataSource.getAllTasks();
//add all...
for(int i = 0; i < allItems.size();i++) {
mAdapter.add(allItems.get(i));
}
}
}
今すぐ返されるエントリのリストは空です。なぜか分からない。助言がありますか?
を試すことができます。それはトリックでした!それを気に入ってください:) –
@GeorgiKoemdzhiev yo welcome budy !! –