如何找出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语句中的错误

在生成LINQ to SQL类后,您可能更改了数据库中某些表的定义

简单的解决方案是再次生成这些类,但要确保在生成后复制对它们所做的任何更改(即添加自定义字段或方法(。

另一种解决方案是调用自错误开始出现以来在数据库中更改的内容(将字段从NOT NULL设置为NULL或反之亦然将导致此错误(,然后在LINQ to SQL类中进行相关更改。