내 데이터베이스에는 두 개의 테이블이 있습니다. 장소 및 장소. 장소 테이블에서 쿼리를 실행 중입니다.rawQuery()가 제로 행을 반환하는 이유는 무엇입니까?
private void test(){
Cursor cur = new DatabaseQuery().getPlaceDetailsForPhonebook(DatabaseHelper.getInstance(this).getMyWritableDatabase(),"hospital","District");
Log.e("myapp","row = "+cur.getCount());
}
이
public Cursor getPlaceDetailsForPhonebook(SQLiteDatabase db,String type,String DIS_NAME){
String sql;
if (DIS_NAME.equals("District")) {
sql = "SELECT name,phonenumber FROM Place WHERE type = '" + type + "'";
}
else {
sql = "SELECT name,phonenumber FROM Place WHERE districtname = '"+DIS_NAME+"' AND type = '"+type+"'";
}
Log.e("myapp",sql);
Cursor cr = null;
try {
cr = db.rawQuery(sql, null);
Log.e("myapp","inside method row = "+cr.getCount());
}
catch(Exception e){
Log.e("myapp",e.getLocalizedMessage());
}
return cr;
}
내 DatabaseHelper이
public class DatabaseHelper extends SQLiteOpenHelper {
private static SQLiteDatabase myWritableDb;
private static DatabaseHelper sInstance;
private DatabaseHelper(Context context){
super(context,"district.db",null,1);
}
public static synchronized DatabaseHelper getInstance(Context context) {
if (sInstance == null) {
sInstance = new DatabaseHelper(context.getApplicationContext());
}
return sInstance;
}
public SQLiteDatabase getMyWritableDatabase() {
if ((myWritableDb == null) || (!myWritableDb.isOpen())) {
myWritableDb = this.getWritableDatabase();
}
return myWritableDb;
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}}
올바른 results.I을 반환하는 지구 테이블에서 실행되는 모든 쿼리가 SqliteBrower 등을 사용하고 난 실행 getPlaceDetailsForPhonebook 방법을이다 동일한 쿼리 (test() 메서드 내에서 쿼리) Place 테이블에 올바른 결과를 주었다. 따라서 데이터베이스에는 아무런 문제가 없습니다. 09 : 내 로그 캣
02-06 10:09:43.393 11938-11938/com.example.helpfinder E/myapp: SELECT name,phonenumber FROM Place WHERE type = 'hospital'
02-06 10 43.393 11938-11938/com.example.helpfinder E/MyApp를 :에있어서 내부 행 = 0
02-06 10 : 09 : 43.393 11938- 11938/com.example.helpfinder의 E/myapp와 : 행 미리 = 0
도와주세요 와요 고마워요 :)
WHERE 절이 없으면 무엇이 있습니까? 그리고 왜 당신의'onCreate'는 비어 있습니까? –
@CL 나는 내 문제를 해결하고 답변을 게시했습니다. 어쨌든 답장을 보내 주셔서 감사합니다. onCreate가 비어 있기 때문에 그 위에 아무것도 추가 할 필요가 없습니다 ... –