0

我的数据库表有一个名为 inTime 的时间戳列,我正在使用 LINQ 插入、更新 SQL 服务器中的数据。现在我想在我的数据库中添加时间戳值,但我不知道如何插入?

 spaBL.attendance obj = new spaBL.attendance();
            obj.FK_employeeId = 1;
            obj.inTime =[what to write here??]

inTime 是时间戳类型。

4

4 回答 4

1

SQL Server 时间戳数据类型中的时间戳?

;) 如果我每次有人没有阅读文档并认为这是一个时间戳我都能得到一分钱,我会比比尔·盖茨更富有。

时间戳数据时间中没有时间信息。它是一个正在运行的版本号,是 Sybase SQL Server 的遗留版本,Microsoft 的 SQL Server 源自该版本,而且是一个完全无聊的设计。

所以,不,你不能设置那个字段,对不起,它没有可用的价值,除了看看它是否改变了(然后行被更新了)。

即使有些人认为阅读可能是一门失传的艺术,文档也明确说明了这一点:

http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90).aspx

是一种在数据库中公开自动生成的唯一二进制数的数据类型。时间戳通常用作对表行进行版本标记的机制。

你没有办法设置它。更改您的 LINQ 设置以不更新此列。

于 2012-07-02T07:10:20.153 回答
1

时间戳值由服务器在插入时自动生成。您应该在不为时间戳列提供值的情况下向表中插入行。然后 Sql server 将生成该列的值。

请注意,时间戳类型的列不包含可以解析为 DateTime 的值。时间戳列背后的想法是,它们可用于在获取行和尝试使用新值更新行之间检查行是否已更新。

于 2012-07-02T07:12:09.590 回答
1

您不为具有 Timestamp (Rowversion) 数据类型的列提供值。SQL Server 会自动为您提供一个值(它不会是日期时间值)。因此,您无需担心 Linq To SQL 会为您插入时间戳值。事实上,你做不到。SQL Server 将为您完成。但是,您可以检索 Timestamp 列的值。我相信相应的 C# 类型将是 System.Data.Linq.Binary。

如何使用 LINQ 在 SQL 数据库中添加时间戳值

希望能帮助到你

于 2012-07-02T07:13:17.127 回答
0

您无法更新时间戳。见这里。事实上,正如 TomTom 所指出的,它不包含实际时间信息。

于 2012-07-02T07:12:40.520 回答