0
데이터베이스에서 데이터를 가져 오는 데 문제가 있습니다. LogCat에서 그러한 열 timeinstance로 불평했다. 이것은 내가 데이터베이스에 추가 한 새로운 컬럼입니다. 페칭에만 문제가 있지만 createNewList에는 해당 열에 문제가 없습니다. 무엇이 문제 일 수 있습니까? 내 전체 데이터베이스 클래스를 게시했습니다.Android의 Sqlite 데이터베이스에서 데이터를 가져올 수 없습니다.
public class TrackerDBAdapter {
public static final String KEY_ROWID = "_id";
public static final String KEY_IDNUM = "_idnum";
public static final String KEY_SIMCARD = "_simcard";
public static final String KEY_DESCRIPTION = "_description";
public static final String KEY_MODEL = "_model";
public static final String KEY_TIMEINSTANCE = "timeinstance";
private static final String TAG = "TrackerDBAdapter";
private static final String DATABASE_NAME = "DBTrackerList";
private static final String SQLITE_TABLE = "TBTrackerList";
private static final int DATABASE_VERSION = 1;
private final Context mCtx;
private static final String DATABASE_CREATE =
"CREATE TABLE if not exists " + SQLITE_TABLE + " (" +
KEY_ROWID + " integer PRIMARY KEY autoincrement," +
KEY_IDNUM + "," +
KEY_SIMCARD + "," +
KEY_DESCRIPTION + "," +
KEY_MODEL + "," +
KEY_TIMEINSTANCE + "," +
" UNIQUE (" + KEY_IDNUM +"));";
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.w(TAG, DATABASE_CREATE);
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + SQLITE_TABLE);
onCreate(db);
}
}
public TrackerDBAdapter(Context ctx) {
this.mCtx = ctx;
}
public TrackerDBAdapter open() throws SQLException {
mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
return this;
}
public void close() {
if (mDbHelper != null) {
mDbHelper.close();
}
}
public long createNewList(String idnum, String simnum,
String description, String model, String time) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_IDNUM, idnum);
initialValues.put(KEY_SIMCARD, simnum);
initialValues.put(KEY_DESCRIPTION, description);
initialValues.put(KEY_MODEL, model);
initialValues.put(KEY_TIMEINSTANCE, time);
return mDb.insert(SQLITE_TABLE, null, initialValues);
}
public boolean deleteAllTrackerInTheList() {
int doneDelete = 0;
doneDelete = mDb.delete(SQLITE_TABLE, null , null);
Log.w(TAG, Integer.toString(doneDelete));
return doneDelete > 0;
}
@SuppressLint("NewApi")
public Cursor fetchListBySimcardNum(String inputText) throws SQLException {
Log.w(TAG, inputText);
Cursor mCursor = null;
if (inputText == null || inputText.length() == 0) {
mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_IDNUM, KEY_SIMCARD, KEY_DESCRIPTION, KEY_MODEL, KEY_TIMEINSTANCE},
null, null, null, null, null);
}
else {
mCursor = mDb.query(true, SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_IDNUM, KEY_SIMCARD, KEY_DESCRIPTION, KEY_MODEL, KEY_TIMEINSTANCE},
KEY_SIMCARD + " like '%" + inputText + "%'", null,
null, null, null, null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
@SuppressLint("NewApi")
public Cursor fetchListByIDNum(String inputText) throws SQLException {
Log.w(TAG, inputText);
Cursor mCursor = null;
if (inputText == null || inputText.length() == 0) {
mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_IDNUM, KEY_SIMCARD, KEY_DESCRIPTION, KEY_MODEL, KEY_TIMEINSTANCE},
null, null, null, null, null);
}
else {
mCursor = mDb.query(true, SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_IDNUM, KEY_SIMCARD, KEY_DESCRIPTION, KEY_MODEL, KEY_TIMEINSTANCE},
KEY_IDNUM + " like '%" + inputText + "%'", null,
null, null, null, null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public Cursor fetchAllTrackerInTheList() {
Cursor mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_IDNUM, KEY_SIMCARD, KEY_DESCRIPTION, KEY_MODEL, KEY_TIMEINSTANCE},
null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public int getLastInsertedID() {
int id = 0;
Cursor mCursor = mDb.query(SQLITE_TABLE, new String[] {KEY_ROWID,
KEY_IDNUM, KEY_SIMCARD, KEY_DESCRIPTION, KEY_MODEL, KEY_TIMEINSTANCE},
null, null, null, null, null);
if (mCursor.moveToLast()) {
id = mCursor.getInt(0);
}
return id;
}
public void insertSomeCountries() {
createNewList("AFG","Afghanistan","Asia","Southern", "Central Asia");
}
}
. 어떻게해야합니까? – Bryanyan
에뮬레이터를 사용하면 휴대 전화에서와 같이 youcan을 제거 할 수 있습니다. GO를 사용하여 에뮬레이터의 Apps 관리 및 제거하십시오. – Gyonder