データベースマネージャに、homeIconsというテーブルの行の総量を返すと仮定したメソッドを書きました。しかし、0があるときは0を返し、1があるときは1を返し、3があるときは10を返します。そう、何かが私の方法が間違っている..下記を参照してください。sql liteの合計行数をカウント
public int getHomeScreenTotal(){
SQLiteDatabase db=this.getReadableDatabase();
Cursor c = db.rawQuery("select count(*) as count from "+ homeIcons,null);
c.moveToFirst();
int total = c.getInt(0);
return total;
}
EDIT ので、問題はそれではありません..私は私のコードを編集した...と私は可能なちょうど約あらゆる方法で、この方法を書き換えています正しい数の行が返されていません。なぜなら、それはバイナリで数値を返すということだけです。3ではなく11を返します.5ではなく11を返し、101を返します。UHG !!!!私はちょうどintをしたい!私はこれがSQLite DBにアクセスするためのadroid/javaメソッドのバグかどうか、もし私が何かが見つからないと言うことができません..私はintにそれを打ち抜いてもダックを試みましたが、役に立たなかったのです... :(
OKEDIT 私はちょうど次のような方法を使ってint型にバイナリを強制しようとした:無効INT::「7
public int getHomeScreenTotal(){
SQLiteDatabase db=this.getReadableDatabase();
int rows;
String bin = ""+ db.compileStatement("SELECT COUNT(*) FROM " + homeIcons).simpleQueryForLong();
rows = Integer.parseInt(bin, 2);
return rows;
}
これは
java.lang.NumberFormatExceptionのエラーがスローされます"
ここで、 "7"は、実際には返すと考えられる番号です。もし5行あるなら、無効なint "5"のエラーが出ます;あなたがデータベースをあなたのために持ち上げることをもっと幸せにするでしょう。
私は私のカーソルをクローズする必要があり、あなたの方法 – dymmeh
から戻る前にカーソルをクローズすることを確認してください。正しいです..問題は、カウントが長く、私はintが必要なようです。私はintとして強制してみましたが、1,2,3,4の代わりに1、10,11、100,101のようなバイナリを返します。 – erik