我努力为这个帖子找到合适的头衔。
原谅我并不清楚。
我们有一个名为Locations的表,其中包含以下属性:
locationID - 每个位置每个班级有30个容量座位 Capacity_Seating - 这是每个位置每个班级允许的总座位数。
当用户登录时,会向s / h显示可供选择的位置下拉列表。学员选择的位置是他/她将要参加培训的地点。
每个位置的容量座位为30。
用户登录后,他/她将被带到Trainring页面。培训显示有关课程的一般信息,包括培训的日期和时间,持续时间,容量座位以及最重要的可用座位或剩余座位。
如果座位仍然可用,用户可以单击注册以注册该特定培训。
注册此用户后,可用座位会更改。
例如,如果在该实习生注册之前有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
End Sub
顺便说一下,标记是在gridview上。
答案 0 :(得分:1)
对于您的第一个问题,您希望如何进行,主要归结为您想要做的事情。为表中的可用席位设置另一个字段或使用查询查找剩余的席位都是可行的选择。考虑到系统的基本结构,任何一个的好处或缺陷都可以忽略不计。看到你将使用特定的查询来不断地找到这条信息,将这个值作为表中的新字段添加将是更好的实践和意义。这将消除对特定查询的需要,并使这些数据对其他系统和查询更加公开。
对于你的第二个问题,我不太确定我会遵循它,但我会尽力给你最好的意见。您似乎想根据我不同意的注册和取消来更改每个表中的总容量字段。如果实际的位置总容量没有变化,则不应修改容量值。因此,我不会通过取消或注册更改总容量,而是更改新的可用座位字段。在查看该位置的容量时,这不会造成混淆,并且很容易找到可用的注册空间。
答案 1 :(得分: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
如果您需要更多帮助或清晰,请与我们联系。