すべて! マイコード: このメソッドは現在の日付をチェックする必要があり、変更された場合はdbに新しいレコードが作成されます。SQLiteベースのアプリケーションのバグ。日付を使用します。 Android
private static String getDateInString()
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date());
return date;
}
表構造:
public static void updateHintBase(SQLiteOpenHelper database)
{
String currentDate = getDateInString();
SQLiteDatabase db = database.getReadableDatabase();
Cursor cursor = db.query("HINTS",
new String[]{"CURRENT_DATE"},
"CURRENT_DATE = ?",
new String[]{currentDate},
null, null, null);
int countRow = cursor.getCount();
cursor.close();
if (countRow==0)
{
ContentValues values = new ContentValues();
values.put("CURRENT_DATE", currentDate);
values.put("SPENT", 0);
values.put("TOTAL", TOTAL_HINTS);
db.insert("HINTS", null, values);
}
db.close();
}
このメソッドは、Stringに日付を変換
db.execSQL("CREATE TABLE HINTS (CURRENT_DATE TEXT PRIMARY KEY , "
+ "SPENT INTEGER,"
+ "TOTAL INTEGER);");
しかし、私のコードは動作しません。初めてたとえば
...それは動作しますが、日が私の最初の方法を変更して二回目はとにかくカーソル内の要素を検索します。
1)今日、2017年1月16日を。私のアプリケーションは実行されました。全て大丈夫だ。
2)今日18.01.2017。私のアプリケーションが実行され、そのメソッドが期待されるcursor.getCount()私に戻る新しい日付の新しい行が作成されます。しかしそれは私に戻るなど
ありがとう、私はあなたに同意します...しかし、行数を取得した後、カーソルを閉じました。そして、別のコードでは、私は本当にループを使用します。しかし、このコードでは、現在の日付を持つ既存の行に関する情報を取得するだけで済みます。 –