2016-02-26 83 views
0

我想刪除一些表中的一些行,當我嘗試執行此操作時,我得到一個InvalidOperationException:結果中不存在所需的列'id'。Linq執行查詢InvalidOperationException

在調用此函數之前,我試圖查找和刪除的值已添加到列表中。

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 

我不知道爲什麼錯誤說「身份證」,因爲這實際上嵌套的循環中的錯誤,我在看的DLineList。所以我沒有看Dhead表的ID,直到從DLine刪除所有記錄。

有什麼建議嗎?

+0

哪種類型是'db'?它有一個'.ExecuteNonQuery()'函數嗎?由於刪除,更新,插入處理與選擇不同。 –

+0

不,它有'.ExecuteQuery'和'.ExecuteQuery(Of)' –

+0

我重複自己:哪種類型是db? –

回答

0
db.ExecuteQuery(Of DHead)(dhQuery, dhparam) 
db.ExecuteQuery(Of DLine)(dlQuery, dlparam) 

其中這兩個說法是根本原因,因爲你所要求的一個強類型(SQL服務器解析)的結果集,該消息告訴我們,這兩個類中的一個無法找到ID字段在數據庫中填充該值。將ID字段添加到這些類中的一個或兩個,並且應該設置。

+1

感謝它的工作現在 –