我在一个contentprovider中提供了对数据库的操作,添加数据没问题,但query确查询不到数据,把数据库文件拷贝出来里面也是有数据的,另外写了一个Activity直接Cursor cursor=dbHelp.getReadableDatabase().rawQuery("select * from dict",null)也是没问题的,实在是不知道什么问题了,哪位高手看看?
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder)
{
try
{
SQLiteDatabase db=dBaseHelp.getReadableDatabase();
switch (matcher.match(uri))
{
case WORDS:
Cursor cursor=db.query("dict", null, null, null, null, null, null);
Cursor cursor2=dBaseHelp.getReadableDatabase().rawQuery(
"select * from dict ",
null);
return cursor;
case WORD:
long id=ContentUris.parseId(uri);
String where=Words.Word._ID+"="+id;
if(selection!=null&&!"".equals(selection))
{
where=where+" and "+selection;
}
return db.query("dict", projection, selection, selectionArgs, null, null, sortOrder);
default:
throw new IllegalArgumentException("未知Uri:"+uri);
}
}
catch (Exception e)
{
e.printStackTrace();
// TODO: handle exception
}
return null;
}
WORDS下面两个cursor都没数据。。求解
------解决方案--------------------
return后db还会存在吗?还有就是db打开用完后如果没有db.close是会出错的。
------解决方案--------------------
android 执久化框架。
http://blog.csdn.net/kechanghe0705/article/details/6702890