【问题标题】:Android: Retrieve data from sqlite DatabaseAndroid:从 sqlite 数据库中检索数据
【发布时间】:2014-04-01 02:07:39
【问题描述】:

我目前的数据库设置如下:

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID
                    + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_LOCKERNUMBER
                    + " TEXT NOT NULL, " + KEY_STATUS + " INTEGER, " + KEY_PIN
                    + " INTEGER);");

我正在尝试编写一种方法来从列中获取特定储物柜号码的密码。有任何想法吗?我很新,我想我需要使用查询功能和游标。我只是获取整数值并将其存储到一个 int 变量中,这样我就可以将用户输入的密码与数据库中的密码进行比较。

【问题讨论】:

标签: java android database sqlite


【解决方案1】:

对数据库的查询返回 Cursor object。您应该使用db.query() 方法来获取一行。传递表名,您想要获取的列数组(如果您想要所有列,则为 null),传递一个应该类似于 "id = ?""key > ?" 的选择字符串,然后传递一个包含该值的字符串数组对于前一个字符串中的?, 最后为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);
}

【讨论】:

    【解决方案2】:

    这是一个非常简单的任务,有一堆tutorials, examplessimilar questions on SO

    How to perform an SQLite query within an Android application?

    通常 - 您需要通过搜索参数查询数据库。请参阅documentation

    它将返回一个带有匹配结果的Cursor,您可以使用then iterate overmanipulate as you wish

    仅供参考 - 将密码存储在数据库表中是个坏主意。在 Android 上可以访问和轻松读取数据库。如果数据很重要,您要么需要加密数据,要么考虑另一种存储方式。

    【讨论】:

      【解决方案3】:
               //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;
       }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-18
        • 2011-09-09
        • 1970-01-01
        • 2013-12-25
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多