我有一个方法,我想传递一个字符串到它并搜索数据库的匹配。我是数据库的新手,所以我在我的智慧结束。我一直在使用googling并尝试不同的查询几天,现在它不工作。游标创建得很好,所以我不认为查询有任何语法问题。游标不为空,那里有一个Cursor对象,并且里面也有3列。但是没有行。当我传入一个字符串时,我知道应该有一个匹配它只是不返回任何数据。下面是方法:SQLite数据库搜索不返回行
public Business getBusiness(String search) {
File database=currentContext.getDatabasePath(DATABASE_NAME);
SQLiteDatabase db = SQLiteDatabase.openDatabase(database.getAbsolutePath(),
null, Context.MODE_PRIVATE);
Cursor cursor = db.query(TABLE_NAME, new String[] {COLUMN_ONE, COLUMN_TWO,
COLUMN_THREE}, COLUMN_ONE + " like ' " + search + " '",
null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Business business = new Business(currentContext, cursor.getString(0),
cursor.getString(1), cursor.getString(2),
cursor.getInt(3), cursor.getInt(4));
db.close();
return null;
}
感谢,我会检查出来。我已经阅读了一些教程,并且对getReadableDatabase()和getWritableDatabase()有个疑问。我试图使用这些方法来连接数据库,但是我遇到了问题,因为两者似乎都在调用onCreate(),它会调用数据库创建代码,然后抛出一个异常,因为数据库已经存在。这些方法是否应该调用onCreate()? – 2012-08-07 13:44:25
将getWritableDatabase()方法调用到您的DbHelper类的构造函数中。 – Yash 2012-08-08 04:17:30