繁体   English   中英

游标中没有数据

[英]No data in cursor

我有一个可以在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,但是插入数据时没有异常。 namegeburtsdatumgeschlecht都有一些值。

我无法使用adb检查数据库,因为它在我的计算机上不起作用。 问题是什么?

如果cursor.getCount()的值为0,则查询将在数据库上执行。

我认为问题可能出在where子句中,请尝试将null设置为"" + ""

Cursor cursor = db.query(TABLE_NAME_KIND, new String[] {"_id", "name", "geburtsdatum", "geschlecht"}, null, null, null, null, null);

我相信Jurac发表的内容行之有效,但只有几个问题:

  1. 为什么不插入ID?
  2. 您要如何处理“ +”?

如果您尝试使用列出的4个列名来获取所有行而不进行任何过滤,则可以,传递null。

或者,尝试使用原始查询

    String queryString = "SELECT 1 FROM TABLE_NAME_KIND";

游标cursor = db.rawQuery(queryString,null);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM