0

特定のイベントが発生する日付を表示(強調表示)するアプリケーションに取り組んでいます。私が使用しなければならないデータベースには、特別な意味を持つ日付間隔または日付のコレクション(休日のコレクション、学校の休みなど)を含むテーブルがあります。イベントを定義するとき、ユーザーはそのイベントが発生する日を定義します(定期的に発生する場合)が、ユーザーはその特定のイベントが特別な間隔で発生するかどうかを定義することもできます。たとえば、その日が休日でない場合、毎週日曜日にイベントが発生する可能性があります。今私は'

for (DateTime day = start; day < end;day = day.AddDays(1))
{
    if (Sunday && day.DayOfWeek == DayOfWeek.Sunday)
    {
        MarkedDates.Add(day);
    }
    monthCalendar1.BoldedDates = MarkedDates.ToArray();
}

ここで、このコードが正しく機能するためには、特別な間隔に属する日付をスキップする必要があります(この場合、その日付が休日の場合)。これは、if句に別の条件を追加することで簡単に実行できます。

!SpecialDates.Contains(day)

問題は、データベースからこれらの特別な日付をリストに入力する方法がわからないことです。これらの特別な日付のコレクション/間隔はいつでも変更できるため、単純に「ハードコーディング」することはできません。ですから、私の質問は、SQLコマンドとC#コマンドを使用して、データベースからデータを読み取り、リストに保存するにはどうすればよいかということです。

ありがとう

4

1 に答える 1

1

SQL Server 2008 R2を使用しているように見えるので、データベースにアクセスするにはADO.NETEntityFrameworkなどのORMツールを使用することをお勧めします。最新リリースのEF5を使用するのが最適です。

起動して実行する方法については、オンラインでたくさんのチュートリアルがあります。エンティティフレームワークを使用してモデルクラスを作成することをお勧めします。

それがいかに簡単であるかを理解するために、これがあなたがやろうとしていることを達成するために必要な最小限のコードの例です。

using (var db = new MyDbContext())
{
    var specialDates = db.SpecialDatesTable.ToList();
}
于 2012-10-12T10:04:33.753 に答える