【问题标题】:how to access other columns of an android sqlite database when i have info from one column's record当我从一列的记录中获取信息时如何访问 android sqlite 数据库的其他列
【发布时间】:2012-09-12 09:39:09
【问题描述】:

我有一个活动,它显示手机 sd 卡中的图像,并且我有从另一个活动传递到当前活动的图像路径作为额外的意图,例如://mnt/sdcard /DCIM/pic05.png

路径存储在名为 _data 的列下的数据库中,并且每条记录还有其他列,例如 description 和 _display_name,我如何访问这些?

例如,我有如上图所示的路径,pic05.png,我想在该图片的文本视图中显示 _display_name,这就是我想要了解的方法。

【问题讨论】:

  • 要从 sql 数据库中检索信息,请使用选择查询。请按照本教程vogella.com/articles/AndroidSQLite/article.html 学习如何实现这一目标。
  • 我注意到教程中的新版本代码:Uri uri = ContactsContract.Contacts.CONTENT_URI;这与我一直使用的不同,旧代码已被弃用,如 managedQuery(),混合两种样式的旧代码和新代码有什么问题吗?

标签: android database image sqlite path


【解决方案1】:

简单的 SQL 就可以了,基于一个表:

CREATE TABLE pictures
( fileName TEXT NOT NULL,
  displayName TEXT,
  PRIMARY KEY pictures_pk( fileName ) );

你可以简单地:

SELECT displayName
  FROM pictures
 WHERE fileName = ?

或者在 Java 中:

SQLiteDatabase db...
String displayName;
Cursor c = db.query( "pictures", null, "fileName=pic01.png", null, null, null, null );
c.moveToFirst();
if( !c.isAfterLast() )
    displayName = c.getString(1);

这是非常简化的。当您访问游标时,您需要传递所需的列并使用正确的列索引。

【讨论】:

  • 数据库名称应该放什么,比如 SQLiteDatabase db;并且在使用查询方法时将“db”作为数据库的名称。但是,当在外部 SD 卡上存储图片时,在 android 系统使用的内置数据库上使用查询方法时,您的名称是什么。在我的手机上,该文件名为 external7e47564.db 或只是 external7e47564,表名为 images。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多