我试图删除几个表中的某些行,当我尝试执行此操作时,我收到一个InvalidOperationException:所需的列“ id”在结果中不存在。
我试图查找和删除的值已在调用此函数之前添加到列表中。
For Each dh In DHeadList
For Each dl In DLineList
Dim dlparam() = {dh.DHeadID}
Dim dlQuery As String = "DELETE From dbo.DLine WHERE DHeadId={0}"
db.ExecuteQuery(Of DLine)(dlQuery, dlparam)
Next
Dim dhparam() = {dh.DHeadID}
Dim dhQuery As String = "DELETE FROM dbo.DHead WHERE id ={0}"
db.ExecuteQuery(Of DHead)(dhQuery, dhparam)
Next
我不知道为什么错误会显示“ id”,因为这实际上在我正在查看DLineList的嵌套for循环内出错。因此,直到删除DLine中的所有记录后,我才查看Dhead表的ID。
有什么建议么?
最佳答案
db.ExecuteQuery(Of DHead)(dhQuery, dhparam)
db.ExecuteQuery(Of DLine)(dlQuery, dlparam)
这两个语句之一是根本原因,因为您要查询的是强类型(SQL Server已解析)结果集,因此消息告诉我们,在这两个类之一中,它无法找到要填充的数据库中的ID字段价值。将ID字段添加到这些类中的一个或两个中,就应该设置好了。