SQL Server CE不支持DataReader.HasRows?

Kem*_*min 0 vb.net asp.net sql-server-ce

我有以下代码;

  Dim rdr As SqlCeDataReader = cm_sel.ExecuteReader
  If rdr.HasRows Then
    While rdr.Read
      Documents.DeleteDocument(rdr.Item("fID"))
    End While
  End If
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

如果基础游标不可滚动,则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
Run Code Online (Sandbox Code Playgroud)

Ste*_*tei 5

您可以直接调用,reader.Read因为如果没有行,将返回false.只需删除if周围的声明while.

更新的代码:

Dim rdr As SqlCeDataReader = cm_sel.ExecuteReader
    While rdr.Read
      Documents.DeleteDocument(rdr.Item("fID"))
    End While
Run Code Online (Sandbox Code Playgroud)