簡體   English   中英

Android:從sqlite數據庫檢索數據

[英]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數組? 在上一個字符串中,最后為havinggroupByorderBy傳遞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);
}

這是一項非常直接的任務,並且在SO上有一堆教程,示例類似問題

如何在Android應用程序中執行SQLite查詢?

通常,您需要查詢傳遞搜索參數的數據庫。 請參閱文檔

它將為您返回一個具有匹配結果的游標 ,然后您可以根據需要進行迭代操作

Fyi-將密碼存儲在數據庫表中是個壞主意。 在Android上,可以訪問並輕松讀取數據庫。 您可能需要加密數據,或者如果重要的話,請考慮另一種存儲數據的方法。

         //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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM