1

以下のコード行 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
4

1 に答える 1

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 であり、新しいテーブルを作成できません。
  • 無効な操作例外
    • ソース シーケンス内の DataRow の状態は削除済みです。
    • ソース シーケンスに DataRow オブジェクトが含まれていません。
    • ソース シーケンスの DataRow が null です。

DataTablesマルチスレッド環境である ASP.NET では、共有/静的に注意する必要があることに注意してください。スレッドセーフではありません。ルックアップにのみ使用してください。

于 2013-08-05T22:28:47.550 に答える