CopyToDataTable()表示空行

时间:2013-08-05 22:23:03

标签: .net linq linq-to-sql

如果没有可用的行,下面的代码行CopyToDataTable()会抛出错误,如何处理它?<​​/ p>

<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

1 个答案:

答案 0 :(得分:1)

您只需先检查一下:

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为空。

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