我定义了一个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());
}
}
日志为空。
答案 0 :(得分:0)
运行oncreate后。 使用“sqlite manager”或其他工具检查表格, 查看表格实际上是否包含您期望获得的行