标签: android-sqlite

引起:android.database.sqlite.SQLiteException:无法将只读数据库从版本0升级到1

尝试创建SQLite数据库时,我收到以下LogCat异常:

引起:android.database.sqlite.SQLiteException:无法将只读数据库从版本0升级到1

这是我的代码:

import static android.provider.BaseColumns._ID;
import static org.inetizen.university_timetable.Constants.DAY_OF_WEEK;
import static org.inetizen.university_timetable.Constants.DURATION;
import static org.inetizen.university_timetable.Constants.MODULE_CODE;
import static org.inetizen.university_timetable.Constants.ROOM;
import static org.inetizen.university_timetable.Constants.START_TIME;
import static org.inetizen.university_timetable.Constants.TABLE_NAME;
import static org.inetizen.university_timetable.Constants.TYPE_OF_SESSION;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class TimeTableData extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "timetable.db";
private static final int DATABASE_VERSION = 1;

/** Create a helper object for the TimeTable database **/
public TimeTableData(Context ctx) {
    super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)

android android-sqlite

7
推荐指数
1
解决办法
1万
查看次数

如果我不在Android中关闭数据库会发生什么?

这个标题可能听起来有点疯狂,但这让我感到困惑.我的app大量使用本地数据库操作.正如Android文档和一些博客中所建议的那样,我扩展了SQLiteOpenHelper类并在那里定义了所有数据库操作.由于我的一些数据库操作在线程中执行,因此打开和关闭数据库会导致一些操作IllegalStateExceptions.所以,我做我的助手DB作为Singleton它解决了这些问题,也摆脱的openclose运营的每一个DB行动.现在一切似乎工作正常,即使我从未关闭数据库.

  • 我的困惑是,是否有必要关闭数据库?
  • 如果是这样,那么正确的地方是什么,是onDestroy主要活动还是其他地方?
  • 如果我不关闭DB,有什么副作用?

database android android-sqlite

7
推荐指数
1
解决办法
1421
查看次数

Android :: SQLite,没有找到这样的列?

嘿所有我是一个新手安卓,并希望对此有所帮助?

android.database.sqlite.SQLiteException:没有这样的列:asd :,编译时:DELETE FROM标签WHERE name = asd

这是我面临的错误,这是代码:

这是DBhelper中的方法:

/**
 * Delete a label table
 * */
public void deleteLabel(String label) {
    SQLiteDatabase db = this.getWritableDatabase();

    // ContentValues values = new ContentValues();
    // values.remove(label);

    // Deleting Row
    db.delete(TABLE_LABELS, KEY_NAME + "=" + label, null);
    db.close(); // Closing database connection
}
Run Code Online (Sandbox Code Playgroud)

这是调用该方法的主要Activity代码:

// for spinner onItemListener
// and here is what label is

final String label = parent.getItemAtPosition(position).toString();

Button dialogDeletelButton = (Button) dialog
                .findViewById(R.id.deleteButton);
        dialogDeletelButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View …
Run Code Online (Sandbox Code Playgroud)

android-sqlite

7
推荐指数
1
解决办法
7842
查看次数

Android SQLite LIKE转义通配符

在Android Jellybean 4.1上是否有可能逃避LIKE通配符并仍然喜欢使用索引?

使用:

where field like 'xyz\_abc'
Run Code Online (Sandbox Code Playgroud)

而不是:

where field like 'xyz_abc'
Run Code Online (Sandbox Code Playgroud)

逃避通配符是否适用于Android?如果通配符被转义,它还会使用索引吗?

我目前正在做的是:

where field like 'xyz_abc' and lower(field) = lower('xyz_abc')
Run Code Online (Sandbox Code Playgroud)

由于通配符,这是非常低效的.

谢谢

sqlite android android-sqlite

7
推荐指数
1
解决办法
3280
查看次数

SQLiteDatabase'没有实现接口'

使用SQLiteDatabase作为Closeable时出现此错误

我有一个示例项目来重新创建它:

https://github.com/blundell/SQLDatabaseError

使用扩展SQLiteOpenHelper的类:

public class DatabaseHelper extends SQLiteOpenHelper {

....

public void openAndCloseDatabase() {
    SQLiteDatabase database = getWritableDatabase();

    close(database);
}

private void close(Closeable database) {
    try {
        if (database != null) {
            database.close();
        }
    } catch (Exception e) {
        Log.e("Error", "Oh no!", e);
    }
}

}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

12-14 12:23:43.719: E/AndroidRuntime(5179): FATAL EXCEPTION: main
12-14 12:23:43.719: E/AndroidRuntime(5179): java.lang.IncompatibleClassChangeError: interface not implemented
12-14 12:23:43.719: E/AndroidRuntime(5179):   at com.blundell.sqldatabasecursorerror.DatabaseHelper.close(DatabaseHelper.java:35)
12-14 12:23:43.719: E/AndroidRuntime(5179):     at com.blundell.sqldatabasecursorerror.DatabaseHelper.openAndCloseDatabase(DatabaseHelper.java:29)
12-14 12:23:43.719: E/AndroidRuntime(5179): …
Run Code Online (Sandbox Code Playgroud)

java android implements android-sqlite

7
推荐指数
1
解决办法
753
查看次数

Android应用程序中的最大SQLite数据库大小

我是Android开发的新手.

目前,我正在开发一个拥有大量数据的Android应用程序.

所以我认为我应该在本地存储一些这些数据.

我有一个有2个表的数据库.

表-1的大小是:4.5 MB表-2的大小是:目前3.5 MB.

即完全约8.0 MB,但未来的数据库大小可以增加,可能达到10 MB.

表-1:行(14927)和列(17)表-2:行(9903)和列(38)

我怀疑的是,我可以在Android应用程序中本地存储这么多数据,或者应用程序的速度可以受其影响.

我不想将这些数据存储在外部存储中.我无法将其存储在服务器数据库中,因为我必须在应用程序中多次使用这些数据.而其他数据在服务器上,因为它必须集中使用.

这是我的观点.但请给我你的建议.

如果有这么大的数据库该怎么办.

请帮我.提前致谢...:)

sqlite android android-sqlite

7
推荐指数
2
解决办法
2万
查看次数

关于notifyDataSetChanged()的WinDeath

嗨,我有以下问题:

data.clear();
data.addAll(datasource.getFilesInFolder());  //gets the data from Sqlite database
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)

生成此logCat输出:

 12-19 14:34:30.864: W/Binder(986): Caught a RuntimeException from the binder stub implementation.
 12-19 14:34:30.864: W/Binder(986): java.lang.NullPointerException
 12-19 14:34:30.864: W/Binder(986):     at        android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
 12-19 14:34:30.864: W/Binder(986):     at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
 12-19 14:34:30.864: W/Binder(986):     at android.os.Binder.execTransact(Binder.java:404)
 12-19 14:34:30.864: W/Binder(986):     at dalvik.system.NativeStart.run(Native Method)
 12-19 14:34:30.864: W/InputMethodManagerService(757): Got RemoteException sending setActive(false) notification to pid 30040 uid 10174
Run Code Online (Sandbox Code Playgroud)

这个例外导致胜利死亡......

好吧,我意识到也许是反过来,WIN DEATH导致这个日志输出,因为在日志WINDEATH之前来了,那么我不知道为什么windeath会发生.

我的适配器是扩展BaseAdapter,没有什么特别之处.以下是非常奇怪的:

提到的代码片段位于自定义侦听器中,该侦听器由另一个类触发.当我将有问题的部分放在听众之外时,它运作良好.

我的Caught a RuntimeException from the binder stub implementation意思是?这可能是数据库的问题吗?或者也许是我的自定义听众?任何人都知道什么是错的?

android android-listview android-sqlite

7
推荐指数
1
解决办法
3110
查看次数

我想将图像存储在sqlite数据库中,该数据库取自图库和相机android

我有一个应用程序,用户通过点击Imageview并设置图像和从相机拍摄新照片来添加图像.我想将该设置图像存储到sqlite数据库中.

**AddkeyEventdetail.java**



  package com.example.kidsfinal;

    import java.util.Calendar;

    import android.app.DatePickerDialog;
    import android.app.Dialog;
    import android.content.Intent;
    import android.database.Cursor;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.MediaStore;
    import android.support.v4.app.DialogFragment;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.DatePicker;
    import android.widget.EditText;
    import android.widget.ImageView;
    import android.widget.Spinner;
    import android.widget.TextView;

    import com.example.slidingmenuexample.R;

    public class AddChildHoodEventActivity extends SmartActivity {

        ImageView ivChildPics;
        EditText edtEventDate, edtEventDetails;
        Button btnEventDetailSubmit, btnopenCamera;
        Spinner spinnerSelectChild;
        Bitmap bmp;

        Calendar calendar = Calendar.getInstance();
        int mDay = calendar.get(Calendar.DAY_OF_MONTH), mMonth = calendar
                .get(Calendar.MONTH), mYear = calendar.get(Calendar.YEAR) - 1;

        @Override …
Run Code Online (Sandbox Code Playgroud)

android image-gallery imageview android-sqlite

7
推荐指数
1
解决办法
3355
查看次数

如何在android中保存listview并在需要时将其取回?

我有一个包含三个字段的listview,但我不知道如何保存我的listview android并在用户打开应用程序并将其显示时将其取回.

我想显示listview中保存的数据,我必须保存用户输入列表视图的新数据.

android android-networking android-listview android-sqlite

7
推荐指数
1
解决办法
1010
查看次数

室内一对多关系

我过去一直在为大多数项目使用SugarDB.它很容易使用并且满足了我的大多数要求,但由于该项目已被放弃,因此决定寻找替代方案,而房间似乎是最佳选择.

然而,一些基本的东西在Room中相当混乱.My Object使用Gson填充来自Web服务的数据,例如链接到其他对象.例如,请考虑以下类:

@Entity
public class TestModel
{
    @PrimaryKey(autoGenerate = true)
    private int id;
    private String name;
    private String age;
    private List<Book> issuedBooks;
}

public class Book
{
    private String title;
    private int ISBN;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我的第一个类被注释为实体,那么这会自动将其中引用的类视为实体吗?

如果我保存TestModel的对象,它会将带有它的Books列表保存到数据库中吗?

android android-sqlite android-room

7
推荐指数
2
解决办法
7205
查看次数