2010-08-22 11 views
5

Chcę zwiększyć kolumnę w bazie danych SQL Lite. Im robi tak:Jak zwiększyć pole w bazie danych SQL Lite

public void atualiza(String word){ 
    this.db.rawQuery("UPDATE words SET count = count + 1 WHERE word= ? ", new String[] {word});  
} 

I wywołanie tej metody na innej klasy tak:

this.dh.atualiza(word); 

Ale kiedy ciągnąć bazy danych z emulatora i sprawdzić w przeglądarce SQLite Database, pole nie zwiększa się. Czemu?

+0

jak około jeśli zrobić wybierz z poziomu kodu (SELECT liczyć od słów gdzie słowo =?), czy zwraca poprawną wartość? (czy zdecydowanie wybierasz odpowiednią bazę danych?) –

+1

Myślę, że 'rawQuery' zwraca kod błędu. Czy możesz sprawdzić, co to jest? Również aktualizacje powinny być wykonywane za pomocą execSQL. – MPelletier

Odpowiedz

0

trzeba rozpocząć transakcję na bazie Data not inserting in Sqlite database in android

+0

Należy zauważyć, że gdy transakcje nie są określone, SQLite tworzy własne. – MPelletier

+0

Hmm .. czy znasz dobre androidy na ten temat? Byłbym bardzo wdzięczny za link. –

+0

Jest to funkcja SQLite, nie tak bardzo jak Android, ale tutaj jest oficjalny dokument: http://sqlite.org/lang_transaction.html: "Żadne zmiany nie mogą być wprowadzone do bazy danych z wyjątkiem transakcji. baza danych (w zasadzie dowolne polecenie SQL inne niż SELECT) automatycznie rozpocznie transakcję, jeśli nie jest już ona zastosowana. Automatycznie rozpoczęte transakcje są zatwierdzane po zakończeniu ostatniego zapytania. " – MPelletier

Powiązane problemy