每日更新SQLite Android Datewise

时间:2014-10-20 08:22:09

标签: android date sql-update android-sqlite

我在这里搜索过,但无法得到与我的查询相关的任何答案。

我在我的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);

        } 

我尝试过这两种方法但没有运气。 任何人都可以指导我如何按日期更新每日记录吗?

2 个答案:

答案 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 ...
}