Android中删除表中所有行的最佳方法是什么

时间:2013-10-04 14:04:13

标签: android sqlite

我有一个WCF女巫提供一些JSON数据然后我将它保存到本地数据库。工作良好 我有一个活动女巫将数据从本地数据库填充到listview女巫工作正常。

public void fillData() {

    // Fields from the database (projection)
    // Must include the _id column for the adapter to work
    String[] from = new String[] { TodoTable.COLUMN_SUMMARY };
    // Fields on the UI to which we map
    int[] to = new int[] { R.id.label };

    getLoaderManager().initLoader(0, null, this);
    adapter = new SimpleCursorAdapter(this, R.layout.todo_row, null, from,
            to, 0);

    lw.setAdapter(adapter);
}

我无法弄清楚在从WCF执行同步操作之前删除所有行的最佳方法是什么。

我可以通过从数据库获取所有Id然后找到行URI然后使用:

来完成此操作
getContentResolver().delete(uri, null, null)

我只是认为必须有更好的方法我在网上看到许多使用DbHelper类的例子,但我无法弄清楚如何从Activity或ContentProvider访问dbHelper类

希望有道理

4 个答案:

答案 0 :(得分:29)

使用DatabaseHelper可以这样做:

 dbHelper = new DatabaseHelper(context);
 database = dbHelper.getWritableDatabase();

public void clearTable()   {
    database.delete(TABLE, null,null);
}

答案 1 :(得分:6)

尝试

<your-SQLite-instance>.execSQL("DELETE FROM <table_name>");

这会从<table_name>

中删除所有行

答案 2 :(得分:2)

尝试使用此代码删除表中的所有行:

database.delete(tablename, null,null);

只需为您的数据库名称替换database,为要删除行的表替换tablename

答案 3 :(得分:-1)

如果您只想删除表格中的所有行:

drop table if exists "tablename"

然后使用适当的列重新创建表。我个人认为这样做更容易。