下面的代码,当没有任何可用行时,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
可能存在的异常(exception)情况
- ArgumentNullException
源 IEnumerable 序列为 null,无法创建新表。 - InvalidOperationException
- 源序列中的 DataRow 的状态为“已删除”。
- 源序列不包含任何 DataRow 对象。
- 源序列中的 DataRow 为空。
请注意,在多线程环境 ASP.NET 中,您应该小心使用共享/静态 DataTables
。它不是线程安全的。您应该仅将其用于查找。
关于.net - CopyToDataTable() 用于空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18068801/