C# SQL Insert 语句 - 如果第一列有文本插入到下一列
C# SQL Insert statement - if first column has text insert into the next
我已经构建了一个 RFID 比赛计时系统并且一切正常,但现在我需要插入或更新 tblMovement 条目。
插入时必须使用tagID、movementDate、checkDate。 movementDate 是实际标签读取时间。 checkDate 用于我的防碰撞功能。插入时必须将 movementDate 放入 @Lap1.
更新时,我必须找到 tagID 并检查@Lap1、@Lap2、@Lap3、@Lap4 或@Lap5 是否有数据。如果@Lap3 有数据,那么我必须插入@Lap4 等
我的 SQL 定位 tagID 的搜索查询运行良好,它根据结果更新或插入。我最大的挑战是扫描每一列以查看哪些有数据。我有源代码,但它对这个来说太多了 window.....
最好将其分解为标准化结构,而不是 5 圈时间。这意味着 tblMovementLaps
table 具有以下结构。
CREATE TABLE dbo.tblMovementLaps(
[Id] INT NOT NULL IDENTITY(1,1),
[TagId] INT NOT NULL,
[MovementDate] DATETIME NOT NULL,
[CheckDate] DATETIME NOT NULL
)
您会在每场比赛开始时将新记录插入 tblMovement
,并在每次记录新圈时将新记录插入 tblMovementLap
。然后您将加入两者之间以查看比赛,其中:
SELECT *
FROM [tblMovement] TM
JOIN [tblMovementLaps] TML
ON TM.[TagId] = TML.[Id]
ORDER BY TML.[Id] ASC
这样做的一大好处 - 它可以让您记录无限圈数的比赛,而不会破坏您的结构或将您的运动 table 扩展到越来越多的列中。此外,它还可以让您在运动中保持 space table 可用于每场比赛真正独特的信息(标准化的基础),例如赛车手 ID、比赛日期等。
综上所述,如果您真的想继续支持您当前的结构,您可以向 TblMovement
添加一个 [CurrentLap]
字段。始终将您的单圈时间插入该字段。在您的 table 上设置一个更新触发器,将该值移动到根据其填充的 @lap 字段之一
我已经构建了一个 RFID 比赛计时系统并且一切正常,但现在我需要插入或更新 tblMovement 条目。
插入时必须使用tagID、movementDate、checkDate。 movementDate 是实际标签读取时间。 checkDate 用于我的防碰撞功能。插入时必须将 movementDate 放入 @Lap1.
更新时,我必须找到 tagID 并检查@Lap1、@Lap2、@Lap3、@Lap4 或@Lap5 是否有数据。如果@Lap3 有数据,那么我必须插入@Lap4 等
我的 SQL 定位 tagID 的搜索查询运行良好,它根据结果更新或插入。我最大的挑战是扫描每一列以查看哪些有数据。我有源代码,但它对这个来说太多了 window.....
最好将其分解为标准化结构,而不是 5 圈时间。这意味着 tblMovementLaps
table 具有以下结构。
CREATE TABLE dbo.tblMovementLaps(
[Id] INT NOT NULL IDENTITY(1,1),
[TagId] INT NOT NULL,
[MovementDate] DATETIME NOT NULL,
[CheckDate] DATETIME NOT NULL
)
您会在每场比赛开始时将新记录插入 tblMovement
,并在每次记录新圈时将新记录插入 tblMovementLap
。然后您将加入两者之间以查看比赛,其中:
SELECT *
FROM [tblMovement] TM
JOIN [tblMovementLaps] TML
ON TM.[TagId] = TML.[Id]
ORDER BY TML.[Id] ASC
这样做的一大好处 - 它可以让您记录无限圈数的比赛,而不会破坏您的结构或将您的运动 table 扩展到越来越多的列中。此外,它还可以让您在运动中保持 space table 可用于每场比赛真正独特的信息(标准化的基础),例如赛车手 ID、比赛日期等。
综上所述,如果您真的想继续支持您当前的结构,您可以向 TblMovement
添加一个 [CurrentLap]
字段。始终将您的单圈时间插入该字段。在您的 table 上设置一个更新触发器,将该值移动到根据其填充的 @lap 字段之一