我的程序正在将记录写入db表。到目前为止,它已经为此表写了大约58条新记录。突然之间,我收到一条错误消息“行未找到或已更改”。这很奇怪,因为我正在插入新记录,而不是尝试找到或更新现有记录。这是我用来创建一个对象然后插入表中的一小段代码:
// create new comment object
var comment = new Comment
{
TableName = "Circuit",
TableKey = circuitId,
Text = remarks,
CreatedOn = DateTime.Now,
CreatedByName = "loadCC03Circuits",
CreatedByUupic = "000000000"
};
cimsContext.Comments.InsertOnSubmit(comment);
cimsContext.SubmitChanges();
此时我不太清楚该怎么做。每个字段都有一个值,没有空值。并且,正如我所说的,在这种情况发生之前,已经有58条记录被这个相同的代码写出来了,除了数据被关闭(根据调试器会话中的字段值,不是)我是不太清楚还有什么要检查。有什么建议吗?
编辑:我在下面添加了一个答案,这个问题消失了。但是,我不确定为什么这个解决方案有效。答案 0 :(得分:1)
我找到了一个解决方案,但没有找到"答案"。在这种情况下,解决方案是创建一个包含DateTime.Now值的变量:
var dateNow = DateTime.Now;
我将受影响的代码行更改为:
CreatedOn = dateNow,
奇观奇观,我不再收到错误。我不确定为什么这会解决这个问题,我只是根据同事的建议尝试了这个问题。他认为我工作的沙箱数据库很迟钝,可能会影响DateTime.Now功能。无论如何,这使得这个问题消失了。不过,我希望我有一个明确的答案。当我不明白为什么解决方案有效时,我讨厌解决问题。