【发布时间】:2026-01-26 08:45:01
【问题描述】:
如何将 TSQL 时间戳/行版本值存储在 HTML 隐藏输入字段中作为“可比较”值?
例如:
我从数据库表行中得到一个“时间戳”作为字节数组。现在我想将此值作为字符串存储在我的 HTML 文档中。提交后,我想读出用户在请求页面时获得的时间戳,并将其与数据库当前时间戳进行比较。
【问题讨论】:
标签: c# asp.net tsql timestamp bytearray
如何将 TSQL 时间戳/行版本值存储在 HTML 隐藏输入字段中作为“可比较”值?
例如:
我从数据库表行中得到一个“时间戳”作为字节数组。现在我想将此值作为字符串存储在我的 HTML 文档中。提交后,我想读出用户在请求页面时获得的时间戳,并将其与数据库当前时间戳进行比较。
【问题讨论】:
标签: c# asp.net tsql timestamp bytearray
在您的模型上添加了一个属性,该属性生成了 bytearray 时间戳的 html 友好版本,例如 { 0, 120, 200, 20, 52, 33 } 变为“0 120 200 20 52 33”。使这个属性也可以是 set 从而更新时间戳字节数组。
将此属性绑定到呈现页面中的隐藏字段。
当表单发布时,额外属性的设置设置时间戳字节数组的值。现在您可以将其与 db 时间戳进行比较。
【讨论】:
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 的字节数组。 What does a timestamp in T-Sql mean in C#?
【讨论】: