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

时间:2013-05-27 12:41:55

标签: c# asp.net tsql timestamp bytearray

如何将HTML隐藏输入字段中的TSQL时间戳/ rowversion值存储为“可比较”值?

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

2 个答案:

答案 0 :(得分:2)

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#?

答案 1 :(得分:0)

在模型上添加了一个属性,该属性生成了一个html友好版本的bytearray时间戳,例如{0,120,200,20,52,33}变为“0 120 200 20 52 33”。使它成为这个属性也可以 set ,它依次更新时间戳字节数组。

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

当表单发布时,extra属性的设置设置timestamp字节数组的值。现在,您可以将其与db时间戳进行比较。