0

連絡先データベースを検索するカーソルがここにあります。

String name_to_search = edittext.getText().toString();    
String select = "(" + ContactsContract.Contacts.DISPLAY_NAME + " == \"" +name_to_search+ "\" )";
                        Cursor c = this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
                        this.startManagingCursor(c);

しかし、edittextjohn smith の名前が であり、連絡先 DB の名前が である場合、John Smith結果は得られません。

カーソルで大文字と小文字の区別をチェックしないようにするにはどうすればよいですか?

4

2 に答える 2

0

DBMS が関数 UPPER() をサポートしている場合は、次のようなことができます。

String name_to_search = edittext.getText().toString().toUpperCase();    
String select = "(UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") == \"" +name_to_search+ "\" )";
                            Cursor c = this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION, select, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
                            this.startManagingCursor(c);
于 2013-08-03T09:16:39.633 に答える
0
 public String[]  fetechRatio()//Search from database table WITH WHERE CONDITION
{
    mDb= mHelper.getReadableDatabase();
    String[] columns = new String[]{mHelper.COL_VALUE};
    Cursor cursor=mDb.rawQuery("SELECT "+mHelper.COL_VALUE+" FROM " +mHelper.Table_Name + " WHERE " + mHelper.COL_HEAD + " = '" + alphbet + "' ORDER BY " + mHelper.COL_HEAD + " ", null);
    String name[] =new String[cursor.getCount()];
    cursor.moveToFirst();
    value=cursor.getString(cursor.getColumnIndex(mHelper.COL_VALUE));
    return name;
}

このように使用してください..あなたの状態。

于 2013-08-03T09:28:22.093 に答える