public Settings GetByName(SettingName settingname) { String[] projection = { FeedEntry.Id, FeedEntry.COLUMN_NAME_NAME, FeedEntry.COLUMN_NAME_VAL_1, FeedEntry.COLUMN_NAME_VAL_2, FeedEntry.COLUMN_NAME_VAL_3, FeedEntry.COLUMN_NAME_VAL_4, FeedEntry.COLUMN_NAME_VAL_5, }; String selection = FeedEntry.COLUMN_NAME_NAME + " = ?"; String[] selectionArgs = { settingname.ToString() }; String sortOrder = FeedEntry.COLUMN_NAME_NAME + " DESC"; SQLiteCursor cursor = (SQLiteCursor)db.Query( FeedEntry.TABLE_NAME, // The table to query projection, // The columns to return selection, // The columns for the WHERE clause selectionArgs, // The values for the WHERE clause null, // don't group the rows null, // don't filter by row groups sortOrder // The sort order ); cursor.MoveToFirst(); Settings result = null; if (cursor.Count > 0) { result = new Settings(); result.Id = cursor.GetLong(cursor.GetColumnIndexOrThrow(FeedEntry.Id)); result.Name = (SettingName)Enum.Parse(typeof(SettingName), cursor.GetString(cursor.GetColumnIndexOrThrow(FeedEntry.COLUMN_NAME_NAME))); result.Val_1 = cursor.GetString(cursor.GetColumnIndexOrThrow(FeedEntry.COLUMN_NAME_VAL_1)); result.Val_2 = cursor.GetString(cursor.GetColumnIndexOrThrow(FeedEntry.COLUMN_NAME_VAL_2)); result.Val_3 = cursor.GetString(cursor.GetColumnIndexOrThrow(FeedEntry.COLUMN_NAME_VAL_3)); result.Val_4 = cursor.GetString(cursor.GetColumnIndexOrThrow(FeedEntry.COLUMN_NAME_VAL_4)); result.Val_5 = cursor.GetString(cursor.GetColumnIndexOrThrow(FeedEntry.COLUMN_NAME_VAL_5)); cursor.Close(); } return(result); }
public void putRecord(long time, String difficulty, Context context) { dbHelper = new DBHelper(context); ContentValues cv = new ContentValues(); SQLiteDatabase db = dbHelper.WritableDatabase; SQLiteCursor c = (SQLiteCursor)db.Query("records", null, " difficulty = ?", new String[] { difficulty }, null, null, null); int count = 1; if (c.MoveToFirst()) { int idColIndex = c.GetColumnIndex("id"); int timeColIndex = c.GetColumnIndex("time"); int maxDBindex = c.GetInt(idColIndex); int maxDBtime = c.GetInt(timeColIndex); count++; while (c.MoveToNext()) { if (c.GetInt(timeColIndex) > maxDBtime) { maxDBtime = c.GetInt(timeColIndex); maxDBindex = c.GetInt(idColIndex); } count++; } if (count == 6) { if (time < maxDBtime) { db.Delete("records", " id = ?", new String[] { maxDBindex + "" }); } else { c.Close(); db.Close(); return; } } } cv.Put("time", time); cv.Put("difficulty", difficulty); db.Insert("records", null, cv); cv.Clear(); SQLiteCursor gc = (SQLiteCursor)db.Query("general", null, "difficulty = ?", new String[] { difficulty }, null, null, null); gc.MoveToFirst(); int avgTimeColIndex = gc.GetColumnIndex("avgTime"); int gamesCountColIndex = gc.GetColumnIndex("gamesCount"); int avgTime = 0; int gamesCount = 0; if (gc.MoveToFirst()) { avgTime = gc.GetInt(avgTimeColIndex); gamesCount = gc.GetInt(gamesCountColIndex); } int newGamesCount = gamesCount + 1; int newAvgTime = (avgTime * gamesCount / newGamesCount) + (int)(time / newGamesCount); cv.Put("difficulty", difficulty); cv.Put("avgTime", newAvgTime); cv.Put("gamesCount", newGamesCount); db.Delete("general", " difficulty = ?", new String[] { difficulty }); db.Insert("general", null, cv); db.Close(); c.Close(); gc.Close(); }