在AsyncTask中从数据库中删除多行导致错误

时间:2018-03-20 12:11:20

标签: android sqlite android-asynctask

使用上下文操作栏选择列表视图中的多个项目以删除数据库中的行时工作正常。我正在使用for循环,这个循环,我每次调用Asynctask类来一次删除一个项目。因此,当我想要删除10个项目时,Asynctask被调用10次..这很好。

但是我告诉自己,为什么不把整个for循环放在asynctask而不是多次调用..所以,这也有效,但是在删除ÖNE项目时。删除多个项目会导致错误 可能是什么问题呢?

Asynctask:

select DateKey,ID,
    case Direction
    when 'S' then [Sessions] as S_Sessions -- Incorrect syntax near the keyword 'as'.

    else [Sessions] as R_Sessions
    end
from #MyTable

删除功能

    inner class DeleteData : AsyncTask<TreeMap<Int, Long>, Void, Cursor>() {
    override fun doInBackground(vararg params: TreeMap<Int, Long>): Cursor {
        val data = params[0]

        for ((position, id) in data) {

            dbManager.deleteData(arrayOf(id.toString()))
        }

        return dbManager.queryDataOrRaw()

    }

    override fun onPostExecute(result: Cursor) {
        cursor = result
        ctAdapter?.changeCursor(cursor)

    }
}

Errör:

fun deleteData(selectionArgs: Array<String>?, whereClause:String= colID + " LIKE ?"){
    sqlDB?.delete(dbTable, whereClause, selectionArgs)
}

0 个答案:

没有答案