gpt4 book ai didi

c# - 如何从 SQLDataReader 读取行版本或时间戳 SQL Server 数据类型到 C# 变量

转载 作者:行者123 更新时间:2023-11-30 20:21:50 26 4
gpt4 key购买 nike

我有一个 SQL Server 2012 数据库。每个表都有一组审计字段。一个是名为 RowVer 的列,其数据类型为 timestamp(与 rowversion 相同)。

我很难将 SqlDataReader 中的值读取到 C# 对象中,该对象的属性名为 User.RowVersion,数据类型为 Byte[].

while (rdr.Read()) block 的代码片段

...
user.DateCreated = rdr.GetDateTime(14);
user.CreatedByUserId = rdr.GetInt32(15);
if (!rdr.IsDBNull(16)) { user.DateLastUpdated = rdr.GetDateTime(16); }
if (!rdr.IsDBNull(17)) { user.LastUpdatedByUserId = rdr.GetInt32(17); }
user.RowVersion = rdr.???;
...

RowVersion 值仅用作更新数据库时并发性的比较。

这当然不是 EF 实现。

最佳答案

如果您使用的是 .NET 4.5 或更新版本,您可以这样做

user.RowVersion = rdr.GetFieldValue<byte[]>(18);

如果您使用的是 4.0 或更早版本,则需要执行强制转换。

user.RowVersion = rdr.GetValue(18) as byte[];

关于c# - 如何从 SQLDataReader 读取行版本或时间戳 SQL Server 数据类型到 C# 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33004548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com