[英]Android: Retrieve data from sqlite Database
目前,我已經按照以下方式設置了數據庫:
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_LOCKERNUMBER
+ " TEXT NOT NULL, " + KEY_STATUS + " INTEGER, " + KEY_PIN
+ " INTEGER);");
我正在嘗試編寫一種方法來從列中獲取特定儲物櫃編號的密碼。 有任何想法嗎? 我很新,我想我需要使用查詢功能和游標。 我只是獲得整數值並將其存儲到一個int變量中,所以我可以將用戶輸入的密碼與數據庫中的密碼進行比較。
查詢數據庫返回的Cursor object
。 您應該使用db.query()
方法來獲取一行。 傳遞表名(要獲取的列的數組)(如果需要所有列,則為null),傳遞選擇字符串,該字符串應類似於"id = ?"
或"key > ?"
等,然后傳遞一個包含這些值的String數組?
在上一個字符串中,最后為having
, groupBy
和orderBy
傳遞null,除非您要使用它們。
Cursor cursor = db.query(TABLE_NAME, new String[] { KEY_ROWID }, "id = ?", new String[] { Integer.toString(id) }, null, null, null);
獲得Cursor
,執行cursor.moveToFirst()
或cursor.moveToPosition(0)
(不記得確切的方法,但是重點是將光標移到檢索到的第一行)
那么你會通過迭代cursor
與
while(cursor.moveToNext()) {
int keyRowIdColumnIndex = cursor.getColumnIndex(KEY_ROWID);
int yourValue = cursor.getInt(keyRowIdColumnIndex);
int keyLockNumberColumnIndex = cursor.getColumnIndex(KEY_LOCKNUMBER);
int pin = cursor.getInt(keyLockNumberColumnIndex);
}
//Try This code
public String getLabeId(String LockNo)
{
ArrayList<String> Key_Pin_array = new ArrayList<String>();
Cursor cur = db.rawQuery("SELECT * FROM DATABASE_TABLE where KEY_LOCKERNUMBER = '" + LockNo + "'", null);
try {
while (cur.moveToNext())
{
System.out.println("Key_Pin" + cur.getString(3));
Key_Pin_array.add(cur.getString(3));
}
}
catch (Exception e)
{
System.out.println("error in getLabelID in DB() :" + e);
}
finally
{
cur.close();
}
return id;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.