如何找出linq-to-sql语句中的错误
本文关键字:错误 语句 何找出 linq-to-sql | 更新日期: 2023-09-27 18:14:05
可能重复:
我能做些什么来解决";未找到或更改行”SQL Server Compact Edition数据库上的LINQ to SQL出现异常?
我得到这个错误:-
"未找到或更改行。">
我的代码在这里:-
var tab1 = db.Tabl.Single(s => s.ID == ID);
tabl1.ReceivedDateTimeStamp = DateTime.Now;
tabl1.SentDateTimeStamp = null;
tabl1.Status = "RECEIVED";
db.SubmitChanges();
我还确保ID确实存在于数据库中。有什么帮助吗?
SQL事件探查器的查询:-(实际表(
UPDATE [dbo].[Queue]
SET [QueuedDateTimeStamp] = @p8
WHERE ([QueueID] = @p0) AND ([FileName] = @p1) AND ([PNumber] = @p2) AND ([PName] = @p3) AND ([TNumber] = @p4) AND ([AcquireDate] = @p5) AND ([QueuedDateTimeStamp] = @p6) AND ([SentDateTimeStamp] IS NULL) AND ([Status] = @p7)', N'@p0 int,@p1 nvarchar(74),@p2 nvarchar(14),@p3 nvarchar(1),@p4 nvarchar(36),@p5 datetime,@p6 datetime,@p7 nvarchar(6),@p8 datetime', @p0 = 3, @p1 = N'150_5dadccc7-ca5b-4360-aa3e-6ffd3e8bf7b8_123456789-2011_D_20111019 0323 PM', @p2 = N'123456789-2011', @p3 = N'D', @p4 = N'5dadccc7-ca5b-4360-aa3e-6ffd3e8bf7b8', @p5 = 'Oct 19 2011 3:23:00:000PM', @p6 = 'Nov 8 2011 4:34:04:270PM', @p7 = N'QUEUED', @p8 = 'Nov 8 2011 4:41:31:370PM'
为什么它对所有字段都设置了条件?而我只需要更新记录,其中queueID='1'
在生成LINQ to SQL类后,您可能更改了数据库中某些表的定义。
简单的解决方案是再次生成这些类,但要确保在生成后复制对它们所做的任何更改(即添加自定义字段或方法(。
另一种解决方案是调用自错误开始出现以来在数据库中更改的内容(将字段从NOT NULL设置为NULL或反之亦然将导致此错误(,然后在LINQ to SQL类中进行相关更改。