我试图将值插入我的数据库取决于值的状态。
如果COLUMN_FIELDS_PARAMETER为空,则插入数据。
如果COLUMN_FIELDS_PARAMETER不为空,则更新数据。
我使用按钮,所以当用户点击它时,他会得到以下方法:
public String putParameters(String parametersList, String exercise) {
ContentValues cv = new ContentValues();
cv.put(COLUMN_FIELDS_PARAMETER, parametersList);
cv.put(COLUMN_EXERCISE, exercise);
String whereClause = COLUMN_EXERCISE + "= '"+ exercise+ "'";
if(checkParameters(exercise) == false)
{
ourDatabase.insert(TABLE_NAME, null, cv);
String i = "insert";
return i;
}
else
{
ourDatabase.update(TABLE_NAME, cv, whereClause, null);
String u = "update";
return u;
}
}
checkParameters 方法代码:
public String getParameters(String exercise){
String foo = "";
String whereClause = COLUMN_EXERCISE + "= '" + exercise + "'";
String[] columns = new String[]{COLUMN_FIELDS_PARAMETER};
Cursor c = ourDatabase.query(TABLE_NAME, columns, whereClause , null, null, null, null);
int parameter = c.getColumnIndex(COLUMN_FIELDS_PARAMETER);
try{
c.moveToFirst();
foo = c.getString(parameter);
if (foo == null)
return null;
}
catch(Exception F)
{
foo = "bad";
return foo;
}
return "";
}
public boolean checkParameters(String exercise){
String whereClause = COLUMN_EXERCISE + "= '" + exercise + "'";
String[] columns = new String[]{COLUMN_FIELDS_PARAMETER};
Cursor c = ourDatabase.query(TABLE_NAME, columns, whereClause , null, null, null, null);
int parameter = c.getColumnIndex(COLUMN_FIELDS_PARAMETER);
c.moveToFirst();
if(c.isNull(parameter))
return false;
return true;
}
我的问题是我从来没有得到c.isNull(parameter) == false。我总是收到“插入”消息。如何检查COLUMN_FIELDS_PARAMETER是否为空?我的代码正确吗?感谢您的帮助:)