2011-04-05 5 views
0

私は、Webサイトに表示されるいくつかのイベントに関する情報を格納するテーブルを持っています。これらのイベントは毎週繰り返されるので、毎週同じイベントを入力するのではなく、ユーザーがチェックボックスを選択するだけです(毎週繰り返します)。別の日付(7日追加)。別の問題は、毎週繰り返される3つ以上のイベントがあるかもしれないということです。私は、ページがロードされたとき、またはデータが入力されたときにこれを処理すべきかどうかをランタイムに処理するべきだと思った?誰かが私に指示を与えることができますか?ページが読み込ま私は次のように単純にデータセットを充填してからちょうどデータセットにgirdを結合していた場合:C#Dataset - 異なる日付で同じレコードを表示する方法

 DataSet eventsDS = new DataSet(); 

     SqlConnection conn = new SqlConnection(); 
     conn.ConnectionString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString; 

     SqlCommand command = new SqlCommand("SELECT * FROM [tbl_events]order by [date]", conn); 

     SqlDataAdapter daEvents = new SqlDataAdapter(command); 
     daEvents.Fill(eventsDS); 

答えて

0

この種のことを方法任意の主流のデータベースシステムの能力を超えています。それはまた、おそらくあなたが対処したくない問題の束を紹介します。これらの問題に対処することは、毎週データベースにイベントを追加するだけでは問題にならないでしょう。

たとえば、2011/01/01に開始して毎週繰り返すイベントがある場合、select * from [tbl_events] order by [date]というクエリは、2011/01/01から始まる無限の結果セットを生成します。私はあなたが日付範囲を指定することによってそれを制限することができたと思うが、もしあなたが終値を忘れてしまったら、あなたはある限界を越えるまで結果を生成してしまうだろう。

これを行うコードを書く場合、同じ種類のことが起こります。あなたのコードでは、イベントを表示する週数に上限を設ける必要があります。

あなたの2つの選択肢がある:

1)あなたがレコードを追加先週の数の上限のいくつかの種類で、毎週のためにデータベース内の1つのイベント・レコードを入力します。繰り返しイベントのレコードを追加するには、何らかの方法が必要です。たとえば、最初に26のイベント(6か月間)を追加した後、毎週イベントが発生した後、6か月間自動的にイベントが追加されます。

2)毎週新しいトリガー日付で更新されるイベントレコードを1つ入力します。今あなたの問題は報告にあります。クエリの後、レコードが繰り返しイベントであることを確認し、次に表示するイベントの数を決定する必要があります。

[date]フィールドで今後のイベントを確認するだけではできないため、範囲クエリを実行する場合は2番目のオプションが問題になります。 begin_dateフィールドとend_dateフィールドを格納し、それらに対して範囲クエリを実行できます。

どの方法を選択するかは、システムの使用方法によって大きく異なります。主にイベントが1回発生する場合は、最初のオプションを使用する方がよいでしょう。主にスケジュールで繰り返すイベントの場合は、2番目のオプションを使用して、開始日と終了日のコンセプトを定式化し、頻度を繰り返すことをお勧めします。

+0

Thanks Jim!私は終わりのための日付を設定することができます。私はそれで大丈夫です。あなたがC#開発者であるかどうかは分かりませんが、誰かが私にC#コードのオプションを教えてくれますか? – fazthegreat

関連する問題