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)
您可以直接调用,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)