Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何删除SQLITE数据库中的第一行?_Android_Sql_Sqlite_Listview - Fatal编程技术网

Android 如何删除SQLITE数据库中的第一行?

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

我的ListView显示来自我的SQLITE数据库的数据。 通过长按ListViewItem,我将删除此特定项。 一切正常,但我没有删除我的第一个项目。我在LogCat中没有发现任何错误。只是什么都没发生

以下是我在数据库类中的代码:

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参数用于数据库。谢谢:)