私のデータベースには2つのテーブルがあります。ディストリビューションとプレイス。プレイステーブルでクエリを実行しています。rawQuery()がゼロ行を返すのはなぜですか?
private void test(){
Cursor cur = new DatabaseQuery().getPlaceDetailsForPhonebook(DatabaseHelper.getInstance(this).getMyWritableDatabase(),"hospital","District");
Log.e("myapp","row = "+cur.getCount());
}
このgetPlaceDetailsForPhonebook方法である
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を使用して、そこに私が実行していますPlaceテーブルの同じクエリ(test()メソッド内のクエリ)が正しい結果を返しました。したがって、データベースには何も問題はありません。 09: マイlogcat
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
事前にme.Thanksを助けてください:)
WHERE句がないと何かが得られますか?なぜあなたの 'onCreate'は空ですか? –
@CL私の問題を解決し、答えを掲載しました。とにかく返信いただきありがとうございます。 onCreateは空であるため、何か追加する必要はありません... –