2012-04-04 10 views
0
Integer c=0; 

DatabaseHelper dbh1 = new DatabaseHelper(this); 
Cursor ca = dbh1.getReadableDatabase().query(DatabaseHelper.TABLE_NAME, null, null, null, null, null, null); 

while (ca.moveToNext()) 

{ 
    String Ans6 = ca.getString(ca.getColumnIndex(DatabaseHelper.VALUE6)); 
    if (Ans6.equals("Automatic")) 
     { 
     c+=1; 
     } 
} 
String strI = Integer.toString(c); 

Toast toast=Toast.makeText(this, strI, 2000); 
toast.show(); 

私はアンドロイドでSQliteデータベースをセットアップしました。テーブルは正常に設定されており、自動値と一致する場合はVALUE6列の値をチェックしようとしています。カーソルはすべての行を通過し、その行のVALUE6の値をチェックして、自動を持つ行の数を戻す必要があります。私のコードは正しいのですか?何か案は? strIはコードを実行するたびに0を返します。whileループによるデータベースの問題のチェック

答えて

1

それはそれをやることのやっかいな方法です。その値をクエリしてから、返されるカーソルの行数を取得するのはなぜですか?

Cursor ca = dbh1.getReadableDatabase().query(DatabaseHelper.TABLE_NAME, null, DatabaseHelper.VALUE6 + "='AUTOMATIC'", null, null, null, null); 
int count = ca.getCount(); 

+1

この知恵にご留意ください。できるだけデータベースがあなたのために働くようにしてください。 – Argyle

+0

THANKS Barak。これは、クエリの仕方がわからないときに起こります。 –

+0

@Argyle - 私は –