2 ssummeraw ssummeraw 于 2013.06.08 13:07 提问

在 index 4 的 bind value 是 null

我使用的下面的代码,但是给出错误

String updateQuery ="INSERT INTO MAAccounts(userId, accountId, accountType, accountName, parentAccountId, currencyCode, isTransactionDefaultStatusOpen, currentBalance, monthlyBudget, createdOn, updatedOn) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
        String[] valVars = { 
                stringToDB(account.userId),
                integerToDB(account.accountId).toString(),
                integerToDB(account.accountType.getValue()).toString(),
                stringToDB(account.accountName),
                (integerToDB(account.parentAccountId) != null ? integerToDB(account.parentAccountId).toString() : null),
                stringToDB(account.currencyCode),
                boolToDB(account.isTransactionDefaultStatusOpen).toString(),
                CurrencyToDB(account.currentBalance).toString(),
                CurrencyToDB(account.monthlyBudget).toString(),
                dateToDB(now),
                "false"};

        Cursor c = mDb.rawQuery(updateQuery, valVars);

错误:java.lang.IllegalArgumentException: the bind value at index 4 is null

请问如何解释这个错误?

1个回答

u010122579
u010122579   2013.06.08 18:51

这个错误的意思是你sql语句中绑定的第四个值是空的。(integerToDB(account.parentAccountId) != null ? integerToDB(account.parentAccountId).toString() : null),
这个判断语句中可能返回了一个null,因此报错。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!