检查数据库中的特定日期以防止预订交叉

时间:2017-04-11 17:03:30

标签: sql asp.net vb.net

我有一个ASPX Web表单,登录用户可以从已存储在数据库表中的许多西装外套尺寸中进行选择。一旦选择了夹克尺寸以及预订的起始日期,数据就会被输入到包含相关信息的预订表中。

我需要帮助代码,以确保当其他用户选择西装外套尺码时,他们无法使用预订表中存储的相同日期。输出将在标签中,并带有错误消息,告知用户这些日期的夹克大小不可用。

我正在使用ASP.NET和语言VB来完成所有这些工作。

SuitJacket table

booking table

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

这可以通过If ... Then语句检查和查询的SQL查询来完成。

Dim mySqlConnection As New SqlConnection("Your connection string")
Dim cmd As New SqlCommand
Dim reader As SqlDataReader

cmd.CommandText = "SELECT [ID] FROM [Table] WHERE (JacketSize = @jacketSize AND (DateFrom <= @dateWanted AND DateTo >= @dateWanted))"
cmd.CommandType = CommandType.Text
cmd.Connection = mySqlConnection
cmd.Parameters.Add("@jacketSize", 'JacketSize field')
cmd.Parameters.Add("@dateWanted", 'DateWanted field')
mySqlConnection.Open()
reader = cmd.ExecuteReader()

If (reader.HasRows = TRUE) Then
    'code to execute if date is taken'
Else
    'code to execute if date is not taken'
End If

mySqlConnection.Close()

编辑:忘记添加参数。谢谢Andrew Morton。