我有以下代碼;SQL Server CE不支持DataReader.HasRows?
Dim rdr As SqlCeDataReader = cm_sel.ExecuteReader
If rdr.HasRows Then
While rdr.Read
Documents.DeleteDocument(rdr.Item("fID"))
End While
End If
我得到的錯誤是:如果 底層光標不在滾動
的SQL Server Compact不支持HasRows屬性電話。
那麼在實際讀取DataReader之前,我該如何檢查數據是否存在?
編輯
整個代碼:
Dim con As New SqlCeConnection(ConfigurationManager.ConnectionStrings("MyConnectionString").ToString)
Dim cm_sel As New SqlCeCommand("SELECT fID FROM Files WHERE fCatID=" & catID, con)
Try
con.Open()
Dim rdr As SqlCeDataReader = cm_sel.ExecuteReader
If rdr.HasRows() Then
While rdr.Read
Documents.DeleteDocument(rdr.Item("fID"))
End While
End If
Return "{'result':'ok'}"
Catch ex As Exception
Return "{'result':'error'}"
Finally
con.Close()
con.Dispose()
End Try
對我來說,似乎問題不在於HasRows不支持(因爲問題的標題暗示),而是它在您使用它的方式中不受支持。你可以在你設置'cm_sel'的地方顯示代碼嗎? – 2012-02-13 21:51:39
如果底層遊標不可滾動,[SQL Server Compact不支持對HasRows屬性的調用。](http://stackoverflow.com/questions/7599994/sql-server-compact-does-not-support-呼叫到hasrows-property-if-the-underlying) – 2012-02-13 21:54:58