.net - CopyToDataTable() 用于空行

标签 .net linq linq-to-sql

下面的代码,当没有任何可用行时,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/

相关文章:

c# - 如何一步获取列表中项目的索引?

C# LINQ 返回计数器数组索引最大值到最小值

c# - 使用 Linq to SQL 简化创建数组列

c# - Linq to SQL 创建重复的设计器文件

c# - 如何展平 IEnumerables 的 IEnumerables 的串联

c# - 关于 UNION、INTERSECT 和 EXCEPT 的 SqlException

c# - 在自定义组件中为枚举添加下拉列表

javascript - React JS/Typescript 中的空合并运算符

c# - Linq - 按ID从数据库中选择记录

c# - 将 linq select 查询传递给方法