我有以下代码;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