1

我努力为这个线程想出合适的标题。

原谅我不是很清楚。

我们有一个名为 Locations 的表,具有以下属性:

locationID -- 每个位置每个班级有 30 个容量座位 Capacity_Seating -- 这是每个位置每个班级允许的总座位数。

当用户登录时,s/h 会显示一个可供选择的位置下拉列表。无论受训者选择哪个位置,都是她/他将要接受培训的位置。

每个位置的容量座位是 30。

一旦用户登录,她/他就会被带到培训页面。培训显示有关课程的一般信息,包括培训的日期和时间、持续时间、可容纳人数,最重要的是,可用座位或剩余座位。

如果仍有空位,用户可以单击注册以注册该特定培训。

一旦该用户注册,可用座位就会改变。

例如,如果在该学员注册之前有 15 个座位​​,那么在注册之后,可用座位现在为 14 个座位。

如果用户在最初注册后选择取消他或她的座位,只要不在培训日期的 24 小时内,学员就可以这样做。

这是我的问题。

1,我是否需要添加另一个名为Available_Seats位置表或培训表的字段以显示剩余的座位数,或者可以使用如下查询来完成:

选择(Capacity_Seating- 每次学员注册时)??不知道如何处理。

2,我们想用寄存器来减去一个数字Capacity_Seating并将Cancel一个数字放回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

对于您的第一个问题,您希望如何进行主要取决于您想要做什么。在表格中为可用座位设置另一个字段或使用查询查找剩余座位都是可行的选择。考虑到系统的基本结构,两者的好处或缺陷都可以忽略不计。看到您将使用特定查询不断查找这条信息,将这个值添加为表中的新字段将是更好的做法和意义。这将消除对特定查询的需求,并使这些数据对其他系统和查询更加公开。

对于您的第二个问题,我不太确定我是否遵循它,但我会尽力给您最好的意见。您似乎想根据我不同意的注册和取消来更改每个表的总容量字段。如果位置的实际总容量不变,则不应修改容量值。因此,我不会通过取消或注册来更改总容量,而是更改新的可用座位字段。这在查看位置的容量时不会造成混淆,并且可以轻松地让您找到可用的注册空间。

于 2013-05-27T17:14:12.793 回答
0

这是一个简单的模块:

它为您提供了一个特定课程的选择,有两个场地,每个场地都可以选择 reg 或 adv 课程(这不会影响座位)

在这个阶段,我没有包含 SQL OR 服务器端脚本。这个算法应该会有所帮助。您不需要在表中添加另一列,只需在程序执行时更新字段,如果取消,您可以删除一行。我没有包含那个代码..(太长了!!!哈哈哈)

(注意,这不会对数据类型进行错误检查 - 这是一种简单的格式来获得想法)

Module Module1


Sub main()
    Dim Seat As Object
    Dim Course As Object
    Dim Person1 As Integer
    Dim Venue1 As Integer
    Dim Venue2 As Integer
    Dim regular As Integer
    Dim Advanced As Integer
    Dim x As String

    Do
        Person1 = Person1 + 1
        If Venue1 = 30 Then
            Console.WriteLine("Venue1 is full")
        End If
        If Venue2 = 30 Then
            Console.WriteLine("Venue2 is full")
        End If

        Console.WriteLine("enter 1 for Venue1, 2 for Venue2")
        Seat = Console.ReadLine
        If Seat = 1 Then
            Venue1 = Venue1 + 1
        Else
            Venue2 = Venue2 + 1
        End If
        Console.WriteLine("Regular course = 1, Advanced course = 2")
        Course = Console.ReadLine
        If Course = 1 Then
            regular = regular + 1
        Else
            Advanced = Advanced + 1
        End If

        Console.WriteLine("Press enter to continue, r for reports or x to quit")
        x = Console.ReadLine
        If x = "r" Then
            Console.WriteLine("total Persons= " & Person1 & vbCrLf & "total Venue1= " & Venue1 & vbCrLf & "total Venue2=" & Venue2 & vbCrLf & "Course: regular " & regular & vbCrLf & "Advanced " & Advanced)
        ElseIf x = "x" Then
            Exit Do
        Else
        End If
    Loop Until Person1 = 60
    If Person1 = 60 Then
        Console.WriteLine("Course is full.")
    End If

End Sub
End Module

如果您需要更多帮助或澄清,请告诉我。

于 2013-05-28T03:01:22.497 回答