0

毎週のトレーニングの特定の日付で満たされた SQL データベースがあります。毎週火曜日と水曜日のみトレーニングを行っています。現在、次のように出力されます。

Training Schedule

Mar 4 - Training Title
Mar 5 - Training Title
Mar 12 - Training Title
Mar 19 - Training Title

さて、データベースにもない日付を表示するように求められていますが、火曜日と水曜日のみです。したがって、基本的にはこのように見える必要があります。

Training Schedule

Mar 4 - Training Title
Mar 5 - Training Title
Mar 12 - Training Title
Mar 13 - No Training
Mar 19 - Training Title
Mar 20 - No Training

すべての「トレーニングなし」の日付をデータベースに追加せずにこれを行う最善の方法は何ですか (それには永遠にかかるため)。現在、次のコードを使用してデータベースの結果を出力しているだけです。

var now = DateTime.Now;
var tableSql = "select * from Training where Date >= " + "'" + now + "'" + " order by Date";
pcm.CommandText = tableSql;
prs = pcm.ExecuteReader();
var rowcount = 0;
while (prs.Read())
   {
     rowcount++;
          %>
 <%=Convert.ToDateTime(prs["Date"].ToString()).ToString("MMM d").ToUpper()%> - <%=prs["Title"].ToString().ToUpper() %> <% } %>
        <%
            prs.Close();
            pcn.Close();
        %>
4

1 に答える 1

0

SQLクエリによって返されたデータセットをループし、結果をコレクションに追加します(List<string>)。次に、既知の日付範囲を取得し、それらの日付をループします。曜日が火曜日または木曜日の場合は、コレクションをチェックして、その日付に値があるかどうかを確認します。その場合はその文字列を表示し、そうでない場合は「トレーニングなし」メッセージを表示します。

于 2013-03-05T21:54:54.980 に答える