在HTML隐藏字段中存储TSQL时间戳

本文关键字:存储 TSQL 时间戳 字段 HTML 隐藏 | 更新日期: 2023-09-27 18:15:37

如何在HTML隐藏输入字段中存储TSQL时间戳/rowversion值作为"可比"值?

例如:
我从数据库表行中获得一个"时间戳"作为字节数组。现在我想把这个值作为字符串存储在HTML文档中。在提交之后,我想读取用户请求页面时获得的时间戳,并将其与数据库当前时间戳进行比较。

在HTML隐藏字段中存储TSQL时间戳

byte[] data = dataReader["dt"] as byte[];

你必须将它作为字符串存储在隐藏字段中:

hiddenField.Value = Convert.ToBase64String(data);

然后转换回来:

byte[] data = Convert.FromBase64String(hiddenField.Value);
比较:

bool areEqual = data .SequenceEqual(data )

PS: SqlServer中的TimeStamp不代表DateTime!这实际上是一个长度为8的字节数组。T-Sql中的时间戳在c#中是什么意思?

在你的模型上添加一个属性,生成一个html友好版本的bytearray时间戳,例如{0,120,200,20,52,33}变成"0 120 200 20 52 33"。使此属性也可以是set,从而更新时间戳字节数组。

将此属性绑定到呈现页面中的隐藏字段。

当表单被张贴时,额外属性的设置将设置时间戳字节数组的值。现在可以将其与db时间戳进行比较。