Articles of SQLite

查询SQLite For Android中列的最大值

我有一个数据库创build并提交数据。 有一列我想find最大的价值。 这是我的数据库适配器中使用的方法: public Cursor getBiggestInTheColumn() { return db.query(DATABASE_TABLE, null, "MAX(price)", null, null, null, null); } 它应该工作,但是当我打电话的方法: cursor = dbadp.getBiggestInTheColumn(); 我得到这样的运行时错误(LogCat): 07-14 12:38:51.852:错误/ AndroidRuntime(276):导致:android.database.sqlite.SQLiteException:滥用聚合函数MAX():,而编译:SELECT * FROM spendings WHERE MAX(price) 有任何想法吗? 我怀疑这是由于错误的查询,但这是我可以想出最好的。 其他查询运作良好。

Android支持JDBC吗?

我知道在Android上有android.database.sqlite包提供了有用的类来pipe理内部的android数据库。 问题是 – 我可以使用标准的java.sql包操作Android的数据库,而不使用任何从android.database.sqlite。*我尝试打开连接使用SQLite JDBC驱动程序,但是当我添加库作为参考项目的Eclipse崩溃与“java堆内存不能转换为dalvik虚拟机”。

getWritableDatabase()VS getReadableDatabase()

我正在创build一个数据库辅助类,对于其中的一些方法,我只是查询数据库和我正在写的其他数据库。 我的理解是这两种方法都会打开数据库,让程序只读或写入数据库。 对于查询语句来说,值得使用getReadableDatabase(),或者两种方法的性能差别不大。 谢谢你的时间。

如何检查数据库上没有root的android设备

我正在开发一个应用程序,我正在使用sqllite3数据库来存储值。 我有Nexus S和Nexus 7都是无根据的设备。 我怎样才能得到我的应用程序的数据库进行debugging的目的。 我试过(1)我已经尝试了这里提到的所有方法 adb shell run-as app.package.name \ cp /data/data/package.name/databases/application.sqlite /sdcard/ exit adb pull /sdcard/application.sqlite ~/ 这说cp没有find.. (2) http://developer.android.com/tools/help/adb.html#sqlite adb -s emulator-5554 shell # sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions …. enter commands, then quit… sqlite> .exit

共享首选项与数据库

我的数据是简单的属性值,所以我可以存储任何方式,但我想知道哪个更可靠? 共享首选项是否自动保存,因此更可靠? 或者因为它们是非事务性的,那么可靠性就不那么好?

如何使用asynchronous任务执行数据库操作

我的应用程序在执行数据库操作后陷入困境,因为它提示我使用AsyncTask,以便主线程不被阻塞。 我创build了独立的类和扩展SQLiteOpenHelper并实现了“OnCreate”和“OnUpgrade”方法。 但是要实现AsyncTask我需要扩展“AsyncTask”。 现在我的问题是,我已经扩展了一个类,我不能为同一个类扩展另一个类。 我的代码是这样的。 import android.content.Context; import android.database.Cursor; import android.database.DatabaseErrorHandler; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import android.widget.Toast; import com.example.project.R; public class Database extends SQLiteOpenHelper{ static final String dbname="Project"; static final int dbversion=1; TableA r=new TableA(); SQLiteDatabase db; private Context Context; public Database(Context context) { super(context, dbname, null, dbversion); try{ db=getWritableDatabase(); // […]

如何在Android SQlite中添加布尔列

我已经使用以下行为我的ContentProvider创build了一个表: static final String CREATE_DB_TABLE = " CREATE TABLE " + CONTACTS_TABLE_NAME + " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " + " pid TEXT NOT NULL, " + " name TEXT NOT NULL,"+ "number TEXT NOT NULL);"; 它有4列。 现在我想添加一个布尔值为true / false的列。 如何添加追加/更改此语句,如果我必须添加一个名为“状态”的布尔列。

Android Sqlite IN,NOT IN语法

我试图运行NOT IN select NOT IN列表是dynamic的。 就像是 SELECT id, type FROM CONTACTS where type NOT IN ('connect','answer') 在代码中,我徒劳的尝试是: db.query(TABLE, new String[] { "id", ""}, " type NOT IN (?)", "connect,answer", null, null, null); // didn't work db.query(TABLE, new String[] { "id", ""}, " type NOT IN (?)", "'connect','answer'", null, null, null); // didn't work 我承认这是? 替代品将我的逗号列表视为单一的参数。 […]

我是否需要带有光标加载器的内容提供者?

我遇到麻烦如何使用CursorLoader。 我想解决的问题是如何显示ListActivity中的SQLite数据库的数据。 列表行使用自定义布局,因此需要来自3个字段的数据(全部在同一个表中)。 除了一些堆栈溢出的问题,我也阅读这篇博客文章 ,来到我需要为我的数据库创build一个内容提供商的决定。 在我去Android的帮助之前,从来没有使用内容提供商如何做到这一点。 第1点说: 如果使用完全在您自己的应用程序中,则不需要提供者使用SQLite数据库。 所以现在我被卡住了,我似乎无法使用没有ContentProvider的CursorLoader,并build议不要创build一个ContentProvider,如果它只用于我的应用程序。 我目前在想,也许这个帮助已经过时了,或者在编写时没有考虑光标加载器呢? 那么我需要继续创build一个ContentProvider,还是有另一种方法来做到这一点? 任何意见将是有益的!

如何在SQLite中删除多行的参数?

我想删除满足多个条件的行。 例如,我传递了一个ID列表,并且想要删除所有具有这些IDs行(ID是唯一的)。 这将是: String[] ids = {"0", "1", "2", "3",…}; database.delete("rows" , "id=? OR id=? OR id=? OR id=? OR …" , ids ); 有没有办法做到紧凑没有多个OR ?