これが私のシナリオです:
- 与えられ
startDate = 1/7/2012
、endDate = 9/7/2012
- データベースに含まれるもの:
4/7/2012
および5/7/2012
- データベースに含まれていない間隔で日付を読み取り、返します
期待される結果(DD / MM / YYYY):
1/7/2012
2/7/2012
3/7/2012
6/7/2012
7/7/2012
8/7/2012
9/7/2012
以下は私が使用しているコードです:
DateTime startDate = new DateTime(2012, 7, 1, 0, 0, 0);
DateTime endDate = new DateTime(2012, 7, 9, 0, 0, 0);
int interval = 1;
MySqlConnection connDate = new MySqlConnection(connectionString);
MySqlCommand cmdDate = connDate.CreateCommand();
cmdDate.Parameters.Add("username", MySqlDbType.VarChar);
cmdDate.Parameters["username"].Value = Session["username"].ToString();
cmdDate.CommandText = "SELECT * FROM report WHERE username = @username";
connDate.Open();
MySqlDataReader drDate = cmdDate.ExecuteReader();
this.Label1.Text = "";
for (DateTime dateTime = startDate; dateTime < endDate; dateTime += TimeSpan.FromDays(interval))
{
//start from here, i don't know exactly what i am doing.
DateTime reportDate = Convert.ToDateTime(null);
while (drDate.Read())
{
reportDate = Convert.ToDateTime(drDate["reportDate"].ToString());
}
if (Convert.ToDateTime(drDate["reportDate"].ToString()).ToShortDateString() != reportDate.ToShortDateString())
{
this.Label1.Text += dateTime.ToString() + "</br>";
}
}
connDate.Close();
問題は、上記のコードは2012年7月1日から9日までのすべての日付を表示することです。代わりに、データベースに既に含まれている7月4日と5日を除くすべての日付を表示したいと思います。