CopyToDataTable() for empty rows



下面的代码wth行CopyToDataTable()在没有可用行时抛出错误,如何处理?

<WebMethod()> _
Public Shared Function GetContestants() As String
    Dim dttemp As DataTable
    currentCount += pageSize
    dttemp = dtContestantList.Rows.Cast(Of System.Data.DataRow)().Skip(currentCount).Take(pageSize).CopyToDataTable()
    Return GetJson(dttemp)
End Function

您只需要先检查一下:

Dim rows = dtContestantList.Rows.Cast(Of System.Data.DataRow)().Skip(currentCount).Take(pageSize)
If rows.Any() Then
    dttemp = rows.CopyToDataTable()
    Return GetJson(dttemp)
Else
    Return ""  
End If 

CopytoDataTable 可能出现的异常

  • ArgumentNullException
    源IEnumerable序列为null,无法创建新表
  • InvalidOperationException
    • 源序列中的DataRow的状态为Deleted
    • 源序列不包含任何DataRow对象
    • 源序列中的DataRow为null

请注意,在ASP.NET中使用共享/静态DataTables(这是一个多线程环境)时应格外小心。这不是线程安全。您应该仅将其用于查找。

最新更新