cshap查询时间一个时间段是否再数据库内有重复,如果有重复,重复时间修改延后
时间: 2023-05-28 08:02:00 浏览: 118
表单校验时间段重叠问题
以下是一个示例代码片段,说明如何使用C#查询一个时间段是否在数据库中有重复,并在必要时更新时间。
```csharp
DateTime startTime = new DateTime(2021, 1, 1, 10, 0, 0);
DateTime endTime = new DateTime(2021, 1, 1, 12, 0, 0);
int appointmentId = 1;
// 查询是否有重复时间段
string query = "SELECT COUNT(*) FROM Appointments WHERE Start >= @StartTime AND End <= @EndTime AND AppointmentId <> @AppointmentId";
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@StartTime", startTime);
command.Parameters.AddWithValue("@EndTime", endTime);
command.Parameters.AddWithValue("@AppointmentId", appointmentId);
int count = (int)command.ExecuteScalar();
if (count > 0)
{
// 如果有重复,修改时间延后30分钟
startTime = startTime.AddMinutes(30);
endTime = endTime.AddMinutes(30);
// 更新数据库中的时间
string updateQuery = "UPDATE Appointments SET Start = @StartTime, End = @EndTime WHERE AppointmentId = @AppointmentId";
SqlCommand updateCommand = new SqlCommand(updateQuery, connection);
updateCommand.Parameters.AddWithValue("@StartTime", startTime);
updateCommand.Parameters.AddWithValue("@EndTime", endTime);
updateCommand.Parameters.AddWithValue("@AppointmentId", appointmentId);
updateCommand.ExecuteNonQuery();
}
```
在上面的示例中,我们首先查询数据库中是否有与所需时间段重叠的约会记录。如果有,我们将开始和结束时间延后30分钟,并更新数据库中的记录。请注意,我们还在查询和更新命令中使用了参数化查询,这是为了防止SQL注入攻击。
阅读全文