1

SQLITE データベースを読み書きするアプリケーションがあります。

public void insertkind(int id, String name, String geburtsdatum, String geschlecht){
        long rowId = 1;
        try{
        SQLiteDatabase db = getWritableDatabase();
        ContentValues cv = new ContentValues();

        cv.put(NAME, name);
        cv.put(GEBURTSDATUM, geburtsdatum);
        cv.put(GESCHLECHT, geschlecht);
        try{
            rowId = db.insert(TABLE_NAME_KIND, null, cv);
        }
        catch(Exception e){
            System.out.println("DES DERF MA NEEEEEEEEEEED SENG!!!!");
        }

        db.close();
    }
    catch (SQLiteException e){
        Log.e(TAG, "insert()", e);
    }
    finally{
        Log.d(TAG, "rowId");
    }
}

次のコードを使用して、データベースからデータを選択します。

public Cursor select(){
        SQLiteDatabase db = getReadableDatabase();
        Cursor cursor = db.query(TABLE_NAME_KIND, new String[] {"_id", "name", "geburtsdatum", "geschlecht"}, 
                "" + "", null, null, null, null);
        System.out.println(cursor.getCount());
        return cursor;
    }

別のアプリケーションでも同様のコードを使用しました。私の問題はcursor.getCount()0ですが、データを挿入しても例外はありません。name、すべていくつかの値がありますgeburtsdatumgeschlecht

私のコンピューターでは動作しないため、adb でデータベースを確認できません。何が問題ですか?

4

2 に答える 2

1

cursor.getCount()get が 0 の場合、クエリはデータベースで実行されます。

問題は where 句にある可能性があると思います。null代わりにset を試してください"" + ""

Cursor cursor = db.query(TABLE_NAME_KIND, new String[] {"_id", "name", "geburtsdatum", "geschlecht"}, null, null, null, null, null);
于 2013-05-02T22:31:45.337 に答える
0

Jurac が投稿した内容はうまくいくと思いますが、いくつか質問があります。

  1. なぜIDを挿入しないのですか?
  2. ""+"" で何をしようとしていますか?

リストした4つの列名でフィルタリングせずにすべての行を取得しようとしている場合は、はい、nullを渡します。

別の方法として、生のクエリを使用してみてください

    String queryString = "SELECT 1 FROM TABLE_NAME_KIND";

カーソル cursor = db.rawQuery(queryString, null);

于 2013-05-04T00:31:21.753 に答える