1

このスレッドにふさわしいタイトルを考え出すのに苦労しました。

明確ではないことを許してください。

次の属性を持つ Locations というテーブルがあります。

locationID -- 各場所には、クラスごとに 30 席があります。 Capacity_Seating -- これは、場所ごとのクラスごとに許可されている座席の合計です。

ユーザーがログインすると、場所を選択できるドロップダウンリストが s/h に表示されます。研修生がどちらの場所を選択しても、それが研修を受ける場所になります。

各会場の定員は30名です。

ユーザーがログインするとすぐに、Trainring ページに移動します。トレーニングには、トレーニングの日時、期間、収容人数、最も重要な利用可能な座席または残りの座席など、クラスに関する一般的な情報が表示されます。

座席がまだ利用可能な場合、ユーザーは [登録] をクリックしてその特定のトレーニングに登録できます。

このユーザーが登録されると、空席が変わります。

たとえば、この研修生が登録する前に 15 席だった場合、登録後に利用可能な席数は 14 席になります。

ユーザーが最初の登録後にシートをキャンセルすることを選択した場合、トレーニング日から 24 時間以内に限り、トレーニング生はキャンセルすることができます。

これが私の質問です。

Available_Seats1、残りの座席数を表示するために、ロケーション テーブルまたはトレーニング テーブルに呼び出される別のフィールドを追加する必要がありますか、または次のようなクエリを使用してこれを行うことができますか?

( Capacity_Seating- 研修生が登録するたびに) を選択しますか?? これを処理する方法がわからない。

2, register を使用して から数値を減算し、数値Capacity_SeatingCancelに戻しCapacity_Seatingます。

あなたの考えと援助は大歓迎です。

<ItemTemplate>
  <asp:LinkButton ID="Btncalc" runat="server" Text="Register" tooltip="Click to calculate" onclick="calc" />
    </ItemTemplate>
  </asp:TemplateField>
</ItemTemplate>

Sub calc(ByVal sender As Object, ByVal e As System.EventArgs) Dim objConnection As SqlConnection

Dim username = Session.Item("Username").ToString
' Dim strSQL As String
objConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("DBConnectionString").ConnectionString)
objConnection.Open()

strSQL = "update TrainingTable set employeeId='" & username
strSQL += "', AvailableSeats= AvailableSeats-1"
strSQL += " where location = '" & ddlLocation.SelectedValue.ToString & "'"
'Response.Write(strSQL)
'Response.End()
Dim cmdcommand As New SqlCommand(strSQL, objConnection)
cmdcommand.ExecuteNonQuery()

cmdcommand = Nothing
objConnection.Close()

objConnection = Nothing

サブ終了

ちなみに、マークアップはgridview上にあります。

4

2 に答える 2

1

最初の質問では、どのように進めたいかは、何をしたいかによって決まります。テーブルに利用可能な座席用の別のフィールドを用意するか、クエリを使用して残りの座席を見つけることは、どちらも実行可能なオプションです。システムの基本的な構造を考えると、どちらの利点も落とし穴も本当に無視できるものです。特定のクエリを使用してこの情報を常に検索する場合、この値をテーブルの新しいフィールドとして追加することをお勧めします。これにより、特定のクエリが不要になり、このデータが他のシステムやクエリに対してより公開されます。

あなたの2番目の質問については、私がそれに従っているかどうかはよくわかりませんが、最善の意見を述べようと思います. 私が同意しない登録とキャンセルに基づいて、各テーブルの総容量フィールドを変更したいようです。ロケーションの実際の総容量が変わらない場合、容量の値を変更しないでください。したがって、キャンセルや登録によって合計キャパシティを変更するのではなく、新しい空席フィールドを変更します。これにより、場所の容量を表示するときに混乱する可能性がなくなり、登録に使用できるスペースを簡単に見つけることができます。

于 2013-05-27T17:14:12.793 に答える