sqlite 无法在Java中将BLOB转换为字符串:安卓系统

ukxgm1gy  于 2022-11-24  发布在  SQLite
关注(0)|答案(1)|浏览(294)

我尝试在查询中提取并使用cursor.getString(1)cursor.getBlob(1),但出现错误

Unable to convert BLOB to string

问题是,如果我的值是String,或者假设值是null并使用cursor.getString(1),它可以正常工作,因为值类似于字符串,我使用getString如果值是blob并使用cursor.getString(1),它会出错,因为它冲突,另一方面,如果我使用cursor.getBlob(1),有时我会得到一个等于null的值,它会给我一个错误,因为值是字符串而不是blob
我怎样才能避免这种情况?需要帮助

    • 查询**
Cursor cursor = MainActivity.sqLiteHelper.getData("SELECT evd.id,evd.additional_image,evd.overall_remarks FROM emv_validation_details AS evd WHERE evd.id="+id);
    while (cursor.moveToNext()) {
        myEdit.putString("emv_id_u",cursor.getString(0));
        String additional_image = cursor.getString(1);  //error here if the value is blob type
        if(additional_image ==null){
            additonal_image_u = null;
        }
        else{
            additonal_image_u = cursor.getBlob(1);
        }
        myEdit.putString("overall_remarks_u",cursor.getString(2));

    }
    cursor.close();
jk9hmnmh

jk9hmnmh1#

这可能是一个答案,如果不是,它可能会给予你一个方向。
尝试使用Object并获取返回类型example here
不知道它是否会首先工作起来,你可能需要调整它,但我不能测试它,但你不会知道,如果你不尝试。

Object additional_image = "";

if((additional_image = cursor.getString(1)).getClass().toString() != null)
{
    //TODO whatever
}

相关问题