我有一种方法来插入数据并检查代码是否存在
如果存在则不创建插入,如果不存在则创建插入
但是当我尝试运行数据时无法插入数据库
这是我的插入代码
public void processAddA(DialogWrapper wrapper)
{
ContentValues values = new ContentValues(2);
values.put(DatabaseHelper.CODE, wrapper.getCode());
values.put(DatabaseHelper.ALAMAT, wrapper.getAlamat());
values.put(DatabaseHelper.BATAS, wrapper.getBatas());
values.put(DatabaseHelper.LAT, wrapper.getLat());
values.put(DatabaseHelper.LON, wrapper.getLon());
values.put(DatabaseHelper.LUAS, wrapper.getLuas());
values.put(DatabaseHelper.TANGGAL_AWAL, wrapper.getTglA());
values.put(DatabaseHelper.TANGGAL_AKHIR, wrapper.getTglB());
values.put(DatabaseHelper.USER_ID, wrapper.getUser());
values.put(DatabaseHelper.SENT, "0");
open();
//check if value exist or not.
Cursor c = database.rawQuery("SELECT * FROM petak_tetap where code='"
+ wrapper.getCode() + "'", null);
if(c == null)
{
//doesn't exists therefore insert record.
database.insert("petak_tetap", DatabaseHelper.ALAMAT,
values);
}
close();
}
如何解决这个问题?
答案 0 :(得分:7)
使用此条件它将起作用
if (c!=null && c.getCount()==0)
答案 1 :(得分:2)
首先,c永远不会为null,你应该使用
if (!c.moveToFirst())
但如果您将代码列声明为UNIQUE
,然后将insertWithOnConflict
与SQLiteDatabase.CONFLICT_IGNORE
一起用作最后一个参数,则会更容易。