whereArgs SQLite база данных удалить - PullRequest
8 голосов
/ 21 марта 2011

Я пытаюсь удалить пару строк в базе данных sqlite программным способом для Android, и мне интересно, на что ссылаются whereArgs в этой документации:

http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#delete(java.lang.String,%20java.lang.String,%20java.lang.String[])

Может кто-нибудь привести пример?

Ответы [ 3 ]

16 голосов
/ 21 марта 2011

whereArgs - это значения для предложения where. Когда вы используете "?" (заполнитель) во втором аргументе (whereClause), вы должны указать whereArgs. Подробности смотрите в этом посте .

3 голосов
/ 17 декабря 2011

Поставьте «=?» в конце второго аргумента (whereClause), например:

delete(CONTENT_URI, TEXT + "=?", new String [] { text } );

number of ? - количество аргументов.

2 голосов
/ 14 октября 2011

Заполнители? не работает (глючит) - поэтому вам нужно создать whereClause (selection) и отправить нулевые аргументы (selectionArgs)

например. Чтобы загрузить динамический список из текста поиска пользователя:

    mCustomerMenuList = (ListView)findViewById(R.id.customer_menu_list);
    mSearchText = (EditText)findViewById(R.id.autoCompleteTextView1);
    mSearchText.addTextChangedListener(new TextWatcher() {          

        public void afterTextChanged(Editable t) {
               //Reload the query using the search text
               ManageMyCustomerMenuList();         
               mCustomerMenuList.setAdapter(mAdapter);          
        }
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // Auto-generated method stub

        }
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {
            //  Auto-generated method stub

        }
        });

и в вашем ManageMyCustomerMenuList() коде запроса поместите что-то вроде:

String s = mSearchText.getText().toString().toLowerCase();

String whereClause = Browser.BookmarkColumns.TITLE+" LIKE ?";
String whereArgs [] = new String[] {"%" +s+"%"};

mCustomerCursor = managedQuery(android.provider.Browser.BOOKMARKS_URI, 
    new String[] {
        Browser.BookmarkColumns._ID,
        Browser.BookmarkColumns.TITLE, 
        Browser.BookmarkColumns.URL
    }, whereClause, whereArgs, mSqlLimit
);

mAdapter = new SimpleCursorAdapter(this, R.layout.row_layout_test, 
    mCustomerCursor, new String[] {
        Browser.BookmarkColumns.TITLE,
        Browser.BookmarkColumns.URL
    }, new int[] { 
        R.id.test_layout_view1, 
        R.id.test_layout_view2 
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...