ユーザーが「ティック」を記録する小さなサービスを作成しています。いくつか問題があります。ユーザーは 1 日に 1 回以上ログを記録できないはずです。そのチェックのための私のSQLは次のとおりです。
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM TickLog WHERE Username = @username AND DATEPART(year, Inserted) = DATEPART(year, @date) AND DATEPART(month, Inserted) = DATEPART(month, @date) AND DATEPART(day, Inserted) = DATEPART(day, @date)";
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@date", DateTime.Now);
int affectedRows = cmd.ExecuteNonQuery();
if (affectedRows > 0)
throw new Exception("allready registered");
}
テーブルの構造は非常に簡単です。
- ID、整数
- ユーザー名、文字列
- 挿入日