我在这里搜索过,但无法得到与我的查询相关的任何答案。
我在我的Android应用程序中使用了sqlite数据库。我有一张桌子" dailydata"。此表包含列名称日期,用于存储当前系统日期。 现在我想要的是,每天更新用户插入的每日记录DATEWISE。我的主键是整数自动增量。
我正在尝试通过以下方法输入用户数据。
public long sendupdate(boolean isdata) {
ContentValues cv = new ContentValues();
cv.put(DATA_TODAY, isdata); // DATA_TODAY is my column where i need to update user value
// return ourDatabase.update(MY_DAILYTABLE, cv , "WHERE" + DATE + "=" +
// ( "SELECT" + "MAX(DATE)" + "FROM " + MY_DAILYTABLE), null);
// ourDatabase.rawQuery("UPDATE MY_DAILYTABLE WHERE Date = (SELECT Max(DATE FROM MY_DAILYTABLE ",
// null);
}
我尝试过这两种方法但没有运气。 任何人都可以指导我如何按日期更新每日记录吗?
答案 0 :(得分:0)
试试这个
writableDatabase.insertWithOnConflict(tableName, null, contentValues, SQLiteDatabase.CONFLICT_REPLACE);
如果数据已存在,则将插入或更新。唯一的限制是具有主键的行;
答案 1 :(得分:0)
要更新数据库中的列,您必须传递表名,然后传递内容值(由数据库中的键和值组成)
将与(唯一值),此列值
进行比较的列名确保DATA_TODAY在数据库中是布尔值
此代码
public boolean updateData(long rowId, String name) {
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, name);
return db.update(DATABASE_TABLE, cv, KEY_ROWID + "=" + rowId, null) > 0;
}
如果您想每天更新数据库
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);
//如果您需要当月的当天 // int DayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
这里是天数,星期日等于1(天= 1)星期一等于2(天= 2).....星期六等于7(天= 7)
使用开关更新数据库
//编辑后
switch (day) {
SQLiteDatabase db = this.getWritableDatabase();
// call update method , put rowID , then pass the day
// notice that day here is integer
// String.valueOf(day)
updateData(rowId, day);
case Calendar.SUNDAY:
// ...
case Calendar.MONDAY:
// etc ...
}