Articles of SQLite

列_id不存在

在我的logcat错误是这样的 logcat的 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): java.lang.RuntimeException: Unable to start activity ComponentInfo{one.two/one.two.Booking}: java.lang.IllegalArgumentException: column '_id' does not exist 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2268) 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284) 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): at android.app.ActivityThread.access$1800(ActivityThread.java:112) 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): at android.os.Handler.dispatchMessage(Handler.java:99) 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): at android.os.Looper.loop(Looper.java:123) 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): at android.app.ActivityThread.main(ActivityThread.java:3948) 08-29 08:20:57.961: ERROR/AndroidRuntime(1766): […]

Android更新SQLite数据库架构?

更新数据库模式的最佳做法是什么? 我可以用SQL命令发送一个文本文件。 该应用程序可以检查文本文件并执行所需的命令。 我猜测,那么我将有一个标志来表明更新已经完成。 我还没有find一种方法来从应用程序中删除资产文件夹中的文件,这将是数据库更新后最好的事情。 对此有何想法?

使用Android进行高效的SQLite插入

我有一个处理我的大学打印机的活动。 打印机可以通过互联网下载,然后存储在SQLite数据库中。 问题是,有大约500个数据库条目需要进行存储,这是我的代码非常耗时(Google Nexus S上大约30秒)。 我的代码是这样的: printerDB = new PrinterListOpenHelper(this); SQLiteDatabase db = printerDB.getWritableDatabase(); db.execSQL("INSERT INTO destination (id, destination) VALUES(1,'BSAC240');"); db.execSQL("INSERT INTO destination (id, destination) VALUES(2,'BSAD152');"); … 接下来是约。 500个相似的行。 我也试图用一个单一的 db.rawQuerry("INSERT INTO destination (id, destination) VALUES(1,'BSAC240'); INSERT INTO destination (id, destination) VALUES(2,'BSAD152');……."); 但是只有第一个INSERT语句被实际执行。 有谁知道使这个效率的一个窍门? 还是Android数据库真的很慢? 非常感谢你的帮助! 西蒙

Android AsyncTask和SQLite数据库实例

我有一个问题,我不知道如何处理它。 我的应用程序中的一个活动有多个访问单个SQLiteOpenHelper AsyncTask 。 我在onCreate()初始化并打开助手,然后在onStop()closures它。 我也检查它是否已经在onResume()初始化。 由于我已经发布我的应用程序,我收到了一些错误,在doInBackground中尝试访问DB助手的空exception。 我知道这是因为在调用doInBackground之前closures了数据库( onStop() ),这足够公平了。 我的问题是,我应该在哪里closures数据库连接? 在活动中使用DB助手的单个实例并从多个线程( AsyncTasks )访问它是正确的吗? 或者我应该为每个AsyncTask使用单独的数据库帮助器实例? 这是我的活动的简化框架: public class MyActivity extends Activity{ private DbHelper mDbHelper; private ArrayList<ExampleObject> objects; @Override public void onStop(){ super.onStop(); if(mDbHelper != null){ mDbHelper.close(); mDbHelper = null; } } @Override public void onResume(){ super.onResume(); if(mDbHelper == null){ mDbHelper = new DbHelper(this); mDbHelper.open(); } […]

MySQL / SQLite / etc数据库之间的区别?

这是我第一次尝试使用数据库,请耐心等待。 我需要编写一个程序来使用我还没有访问的数据库。 我知道有MySQL,SQLite和其他一些SQL的东西,但我不知道它们之间的区别是什么。 我是否需要知道它是什么types的数据库之前,我可以使用它(即,是一个MySQL .db文件不同于SQLite .db文件?),或文件本身将是相同的,不同之处在于如何它被访问? 编辑:我正在编程一个Android平板电脑,这可能很重要。 但是我不会创build数据库,它会被给予我,我必须使用它。

Android / java的Sqlite的:如何检索最大date时间?

下面是从sqlite数据库查询得到的快照。 谷歌search和阅读大量的问题后,我已经知道,使用像max()这样的聚集函数来获取最大date时间是不可能的,因为sqlite不支持太多的数据types,而是把数据types当作text 。 所以,我已经把这些数据带入了List或者java级别。 那么我现在怎么能从这个列表中获得最大的date时间。 在java中是否有这种格式的直接构造。 或者我们有没有find我在sqlite级别的东西。

统计sqlite数据库中的表的数量

我需要计数当前在我的sqlite数据库中的表。 尝试search,但没有得到任何直接的方法。 我在我的DbHelper中尝试了这个方法。 public int countTables() { int count = 0; String SQL_GET_ALL_TABLES = "SELECT * FROM sqlite_master WHERE type='table'"; Cursor cursor = getReadableDatabase() .rawQuery(SQL_GET_ALL_TABLES, null); cursor.moveToFirst(); for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { count++; getReadableDatabase().close(); } cursor.close(); return count; } 但是这个方法给了我一个错误的数字。 我的数据库中只有3个表,但是这个方法返回数为5.这个方法可能是错误的。 有没有直接的方法来计数。

为Android的sqlite数据库使用自定义文件

有没有可能为sqlite数据库文件select一个自定义位置? 如果可能,我想将数据库文件存储在存储卡中。 如果用户从一个存储卡切换到另一个存储卡,我希望我的应用程序使用卡上可用的任何版本的数据库文件。

无法在SQLite中插入,错误代码:19

当我试图运行以下: ContentValues cv = new ContentValues(); cv.put(table_LocalSettings_Unit, input); mDb.insert(table_LocalSettings, "", cv); 我得到了以下错误: 插入单元= 0时出错; SqliteConstraintException:错误代码19约束失败。 应该是什么问题? 表sql代码是: "create table if not exists " + table_LocalSettings + "( " + table_LocalSettings_ID + " INTEGER PRIMARY KEY NOT NULL , " + table_LocalSettings_MapType + " INTEGER NOT NULL , " + table_LocalSettings_Visib + " BIT NOT NULL […]

如何将初始数据添加到SQLite数据库?

一旦应用程序第一次启动,我需要将初始值添加到SQLite数据库。 我应该怎么做?