1

我定义了一个sql表:

      ...

        customersDB2.execSQL("INSERT INTO " + TABLE_NAME + " Values ( 86, 'This ', 'זה ');");
        customersDB2.execSQL("INSERT INTO " + TABLE_NAME + " Values ( 87, 'most ', 'ביותר ');");
        customersDB2.execSQL("INSERT INTO " + TABLE_NAME + " Values ( 88, 'use ', 'uu ');");


.....


    }
    catch (SQLiteException se ) {
        Log.e(getClass().getSimpleName(), "Could not create records");
    }
}

我在“onCreate”上初始化它:

public void onCreate(Bundle savedInstanceState) {
    try {
        customersDB2 =  this.openOrCreateDatabase(  DB_NAME, MODE_PRIVATE, null);


        customersDB2.execSQL("CREATE TABLE " +
                TABLE_NAME +
                " (Block INT," +
                " Name VARCHAR, Street VARCHAR);");
        mFillDbsTable();}
    catch (SQLiteException se ) {
        Log.e(getClass().getSimpleName(), "create/Open the database problem");


    }

我的问题是 c.moveToFirst() 总是返回 false。当我将希伯来语更改为英语时,此问题已解决。我可以修吗?

    Cursor c = customersDB2.rawQuery("SELECT *  FROM "    +
            TABLE_NAME +" where Block == 88", null);


    if (c != null ) { // this return true

        if  (c.moveToFirst()) {  //this return false
            do {
                 Toast.makeText(this,"null1",Toast.LENGTH_SHORT).show();
                 name = c.getString(c.getColumnIndex("Name"));
                 street = c.getString(c.getColumnIndex("Street"));

                 results.add(name + ", " + street );
            }while (c.moveToNext());
        }
    }

日志是空的。

4

1 回答 1

0

在运行 oncreate 之后。使用“sqlite manager”或其他工具检查表,以查看表是否实际包含您期望获得的行

于 2013-04-15T19:55:07.390 回答