Android 如何删除SQLITE数据库中的第一行?
我的ListView显示来自我的SQLITE数据库的数据。 通过长按ListViewItem,我将删除此特定项。 一切正常,但我没有删除我的第一个项目。我在LogCat中没有发现任何错误。只是什么都没发生 以下是我在数据库类中的代码:Android 如何删除SQLITE数据库中的第一行?,android,sql,sqlite,listview,Android,Sql,Sqlite,Listview,我的ListView显示来自我的SQLITE数据库的数据。 通过长按ListViewItem,我将删除此特定项。 一切正常,但我没有删除我的第一个项目。我在LogCat中没有发现任何错误。只是什么都没发生 以下是我在数据库类中的代码: public void deleteEntry(String TABLE, int pos) { SQLiteDatabase database = this.getWritableDatabase(); database.delete(TABLE
public void deleteEntry(String TABLE, int pos) {
SQLiteDatabase database = this.getWritableDatabase();
database.delete(TABLE, KEY_ROWID + "=?" , new String[] { String.valueOf(pos)});
// also tryed this code
database.delete(TABLE, KEY_ROWID + "= '" + pos +"'",null);
}
// Deletes the given row
database.deleteEntry(MyDatabase.DATABASE_TABLE_ORDERS, position);
updateList();
以下是我的列表视图活动的代码:
public void deleteEntry(String TABLE, int pos) {
SQLiteDatabase database = this.getWritableDatabase();
database.delete(TABLE, KEY_ROWID + "=?" , new String[] { String.valueOf(pos)});
// also tryed this code
database.delete(TABLE, KEY_ROWID + "= '" + pos +"'",null);
}
// Deletes the given row
database.deleteEntry(MyDatabase.DATABASE_TABLE_ORDERS, position);
updateList();
我很清楚,提交的int pos表示各自数据库条目的rowId(第一个条目pos为0,第二个条目pos为1,依此类推)
updateList()创建一个新的listview并再次加载数据库中的所有数据
有人知道为什么我可以删除数据库中ListView/行中除第一个条目之外的所有项目吗?谢谢你的帮助
execSQL(“从“+TABLE+”按“+column_to_ORDER_BY+”ASC LIMIT(0,1);”删除):
我会首先在测试台上测试这个
execSQL(“从“+TABLE+”按“+column_to_ORDER_BY+”ASC LIMIT(0,1);”删除):
我会首先在测试台上测试这个 读了几遍你的问题后,我认为我最初在评论中提出的问题是 在我看来,您使用的是
int pos
参数,并认为它是数据库中的行id,但事实并非如此。int pos
参数是列表中的位置(根据您的排序等,它可能不同于行id)
行id包含在侦听器的长id
参数中。以下更改应该可以帮助您(假设我的猜测是正确的)
在读了几遍你的问题后,我认为我最初在评论中提出的问题是 在我看来,您使用的是
int pos
参数,并认为它是数据库中的行id,但事实并非如此。int pos
参数是列表中的位置(根据您的排序等,它可能不同于行id)
行id包含在侦听器的长id
参数中。以下更改应该可以帮助您(假设我的猜测是正确的)
ORDER BY
子句可能有助于对表进行排序,以使“第一行”具有含义。您还可以为每个条目(它在表中的索引)分配一个行号,然后可以执行“DELETE FROM”+table+,其中row_ID=“+poslimit(0,1)不受支持-仅使用limit(1)ORDER BY
子句可能有助于对表进行排序,以使“第一行”具有含义。您还可以为每个条目(它在表中的索引)分配一个行号,然后可以执行“DELETE FROM”+table+,其中row_ID=“+poslimit(0,1)”不受支持-只需使用limit(1)即可。尝试跟踪调试点。它必须工作。尝试跟踪调试点。这真的很有帮助。谢谢!!!!!!!!不知道long id参数用于数据库。谢谢:)这真的很有帮助。谢谢!!!!!!!!不知道long id参数用于数据库。谢谢:)