gpt4 book ai didi

android - 如何使用 SQLiteStatement 向 Sqlite 插入空值

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:10 24 4
gpt4 key购买 nike

我尝试保存到 Sqlite Event

public class EventDao{

private SQLiteStatement insertStatement;
private SQLiteDatabase db;

private static final String INSERT =
"insert into " + EventsTable.TABLE_NAME + "(" + EventsColumns.WHO + ", "
+ EventsColumns.WHAT
+ ") values (?, ?)";

public EventDao(SQLiteDatabase db) {
this.db = db;
Log.w(TAG, EventDao.INSERT);
insertStatement = db.compileStatement(EventDao.INSERT);
}

public long save(Event type) {
insertStatement.clearBindings();
insertStatement.bindString(1, type.getmWho());
insertStatement.bindString(2, type.getmWhat());

return insertStatement.executeInsert();
}
//...
}

getmWho()getmWhat() 都返回非 null 值时,一切正常。但是,当我尝试保存 Who 字段为空的事件(因此 getmWho() 返回 null)时,我收到错误

java.lang.IllegalArgumentException: the bind value at index 1 is null

如何解决这个问题?

最佳答案

使用 bindNull() 而不是 bindString() 来绑定(bind)空值。

或者,由于您在绑定(bind)新值之前要清除所有绑定(bind),所以不要绑定(bind)任何空字符串。当您没有将任何值绑定(bind)到某个位置时,默认值为 null。

关于android - 如何使用 SQLiteStatement 向 Sqlite 插入空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27527424/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com