gpt4 book ai didi

c# - 日期时间的 Linq-To-Sql 问题?

转载 作者:太空宇宙 更新时间:2023-11-03 20:43:40 25 4
gpt4 key购买 nike

好的,我正在使用 SQL Server Express 2008 和 .Net 3.5 (c#)

我在数据库中有几个日期时间字段,我正在尝试对一行进行编辑(使用 Linq-to-Sql)我收到错误“未找到或更改行”。

我花了一些时间获取生成的 SQL,问题似乎是由附加到日期时间的毫秒数引起的。

生成的 SQL 不起作用,

 @p5: Input DateTime (Size = 0; Prec = 0; Scale = 0) [20/10/2009 16:04:45]
@p6: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 10:15:36]
@p7: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 09:27:27]

AND ([SignUpDate] = @p5)
AND ([LastActivityDate] = @p6)
AND ([LastLoginDate] = @p7)

如果我自己修改它就可以了,

 @p5: Input DateTime (Size = 0; Prec = 0; Scale = 0) [20/10/2009 16:04:45.390]
@p6: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 10:15:36.733]
@p7: Input DateTime (Size = 0; Prec = 0; Scale = 0) [23/10/2009 09:27:27.747]

AND ([SignUpDate] = @p5)
AND ([LastActivityDate] = @p6)
AND ([LastLoginDate] = @p7)

我有哪些方法可以解决这个问题?

只是添加这是我的编辑代码,

var UserToEdit = this.GetUser(UserId);

UserToEdit.Forename = Fields["Forename"];
UserToEdit.Surname = Fields["Surname"];
UserToEdit.DateOfBirth = Convert.ToDateTime(Fields["DateOfBirth"]);
UserToEdit.DisplayName = Fields["DisplayName"];
UserToEdit.TelephoneNumber = Fields["TelephoneNumber"];

_db.SubmitChanges();

最佳答案

查看此链接,

System.Data.Linq.ChangeConflictException: Row not found or changed

# High precision datetime fields are used. The solution is to set

UpdateCheck to never for that column your DBML file

这解决了我的问题,但感觉有点像 hack。

我将此开放以查看其他人的想法。

关于c# - 日期时间的 Linq-To-Sql 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1612358/

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