相关疑难解决方法(0)

如何从Android中删除sqlite中表的所有记录?

我的应用程序有两个按钮,第一个按钮用于删除用户输入的记录,第二个按钮用于删除所有记录.但是,当我想删除数据时,它会显示消息
"您的应用程序已被强制停止".

请检查我的代码并给我一些建议.

public void deleteAll()
{
    //SQLiteDatabase db = this.getWritableDatabase();
   // db.delete(TABLE_NAME,null,null);
    //db.execSQL("delete * from"+ TABLE_NAME);
    db.execSQL("TRUNCATE table" + TABLE_NAME);
    db.close();
}
Run Code Online (Sandbox Code Playgroud)

public void delete(String id)
{
    String[] args={id};
    getWritableDatabase().delete("texts", "_ID=?", args);
}
Run Code Online (Sandbox Code Playgroud)

但它显示以下Log cat错误.

03-07 15:57:07.143: ERROR/AndroidRuntime(287): Uncaught handler: thread main exiting due to uncaught exception
03-07 15:57:07.153: ERROR/AndroidRuntime(287): java.lang.NullPointerException
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at com.example.MySQLiteHelper.delete(MySQLiteHelper.java:163)
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at com.example.Settings$4.onClick(Settings.java:94)
-07 15:57:07.153: ERROR/AndroidRuntime(287):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-07 15:57:07.153: ERROR/AndroidRuntime(287):     at android.os.Looper.loop(Looper.java:123)
03-07 15:57:07.153: …
Run Code Online (Sandbox Code Playgroud)

sqlite android

161
推荐指数
9
解决办法
29万
查看次数

在SQLite中设置AUTOINCREMENT的起始值

如何在SQLite中设置AUTOINCREMENT字段的起始值?

sqlite

52
推荐指数
5
解决办法
6万
查看次数

如何在Android Room中完全重新创建数据库?

我有一种情况,我希望能够使用Android Room硬重置我的数据库.使用SQLiteOpenHelper,我可以通过编写一个方法来删除所有表和索引,然后手动调用SQLiteOpenHelper.onCreate().

我知道我可以访问一个SupportSQLiteOpenHelper通风室并自己丢弃所有表格,但似乎没有一个好方法来启动娱乐过程.

另外,我知道我可以删除每个表中的每个项目而不删除它,但这不是我想要的.这不会重置自动递增主键,因此新项目的"id"字段不会重置为1.

谢谢!

编辑:
这是我希望能够在运行时任意做的事情.

编辑2:
该方法应该是可维护的,即不涉及手写符合Room行为的SQL.理想情况下,可以通过某种方式检索 Room生成的SQL或SQLiteOpenHelper.onCreate()等效方法.或其他任何解决这个问题的方法!:)

android-room

15
推荐指数
2
解决办法
8626
查看次数

Android表创建失败(接近"自动增量":语法错误)?

 public static final String MYDATABASE_NAME = "MY_DATABASE";
 public static final String MYDATABASE_TABLE = "MY_TABLE";
 public static final String MYDATABASE_TABLE2 = "MY_TABLE2";
 public static final int MYDATABASE_VERSION = 1;
 public static final String KEY_ID = "_id";
 public static final String KEY_ID2 = "_id2";
 public static final String KEY_CONTENT1 = "Content1";
 public static final String KEY_CONTENT2 = "Content2";
 public static final String KEY_CONTENT3 = "Content3";

 //create table MY_DATABASE (ID integer primary key, Content text not null);
 private static final String SCRIPT_CREATE_DATABASE = …
Run Code Online (Sandbox Code Playgroud)

sqlite android

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

Android会议室 - 自动生成主键

我遇到了一个问题,我无法找到适用于Android的Room和自动生成主键的任何文档.

我有一个看起来像这样的实体类:

@Entity
public class Preference {

    @PrimaryKey(autoGenerate = true)
    private int id;

    public void setId(int id) {

        this.id = id;

    }

}
Run Code Online (Sandbox Code Playgroud)

当我手动设置id时,这工作正常,但是当我没有设置主键时,我收到关于主键为null的错误.查看自动生成的文件,我无法看到它会自动增加主键.

所以我想我的问题是这样的:你能用自己的setter自动生成私有成员的主键吗?或者我需要在setter中手动自动生成我的密钥?

android android-room

10
推荐指数
1
解决办法
5717
查看次数

Android Room 持久化库。删除表

我需要知道如何使用 Room Persistence 库“从表中删除”。

我已经知道我们可以使用以下方法删除所有行:

@Query("DELETE FROM table")
void deleteAll();
Run Code Online (Sandbox Code Playgroud)

但是,我需要的是删除整个表。这是因为我的primary_key是一个自增列,所以使用前面的代码,没有休息。

我已经在以下链接中阅读了有关此主题的答案:

但是,我无法相信这个库没有提供更简单的方法来做到这一点,无论原因或用途如何。

android android-library android-room

8
推荐指数
1
解决办法
8853
查看次数

标签 统计

android ×4

android-room ×3

sqlite ×3

android-library ×1