2013-05-27 43 views
1

如何將HTML隱藏輸入字段中的TSQL時間戳/ rowversion值存儲爲「可比較」值?將TSQL時間戳存儲在HTML隱藏字段

例如:
我從數據庫錶行獲取「timestamp」作爲字節數組。現在我想將這個值作爲一個字符串存儲在我的HTML文檔中。提交後,我想讀出用戶在請求頁面時得到的時間戳,並將其與數據庫當前時間戳進行比較。

回答

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並不意味着Da teTime!這實際上是一個長度爲8的字節數組。 What does a timestamp in T-Sql mean in C#?

0

在您的模型中添加了一個屬性,該屬性生成了bytearray時間戳的HTML友好版本,例如{0,120,200,20,52,33}變爲「0 120 200 20 52 33」。使它成爲這個屬性也可以是設置它輪流更新時間戳字節數組。

將此屬性綁定到呈現頁面中的隱藏字段。

當表單發佈時,額外屬性的設置將設置時間戳字節數組的值。現在您可以將其與db時間戳進行比較。