Asp.net 在GridView中存储时间戳

Asp.net 在GridView中存储时间戳,asp.net,sql-server,Asp.net,Sql Server,我需要在ASP.NET页面上显示一个包含三列的表。SQL Server 2005,ASP.NET 2.0 id int value varchar(50) tstamp timestamp 我使用该字段来处理并发验证,因此它仅供内部使用,永远不会显示给最终用户。但我需要把它存储在某个地方,以便进行适当的更新 这是我的更新过程 UPDATE ValueTable SET value = @value WHERE (id = @id) AND (tstamp = @tstamp) SELECT

我需要在ASP.NET页面上显示一个包含三列的表。SQL Server 2005,ASP.NET 2.0

id int
value varchar(50)
tstamp timestamp
我使用该字段来处理并发验证,因此它仅供内部使用,永远不会显示给最终用户。但我需要把它存储在某个地方,以便进行适当的更新

这是我的更新过程

UPDATE ValueTable SET value = @value
WHERE (id = @id) AND (tstamp = @tstamp)

SELECT @tstamp=tstamp FROM ValueTable
WHERE id=@id
我使用SqlDataSource连接到我的数据库,模式包含所有三列。我的网格视图将只显示两个字段,因为时间戳字段隐藏可见=False

当我评测我的asp页面时,它看起来好像没有在任何地方存储时间戳,即使我在表中有一个隐藏字段


通常,如何在网页上存储时间戳值?它永远不应该被显示,但任何更新都需要它。

经过多次尝试,我想我找到了一个半体面的解决方案

问题似乎是在任何更新或删除命令中都不包括或绑定Visible=false的字段

HiddenField适用于Update命令,因此,如果您不执行任何删除命令,则应该包括一个隐藏字段,该字段绑定到模板化字段中的timestamp列

问题是,如果您同时执行删除操作,它不会查看任何绑定的隐藏字段

我想到的是将时间戳添加到网格视图的数据键中。这样,它将与ID一起被视为复合密钥


因此,简而言之,将时间戳添加到GridView/DetailsView等的DataKeyName中,并删除任何可见字段。这似乎起到了作用。

如何从datagridview获取tstamp字段值?这是另一个问题,但我认为在绑定它时会发生这种情况。在更新部分中,我将输入/输出参数映射到Int64,这似乎是一个很好的数据保持器。