理解の一助:UiPath開発のコツ

UiPath(VB .NET Framework)開発で詰まった際に使える、ちょっとしたコツをまとめています。

理解の一助|【DataTable】Selectメソッドで任意のデータを抽出する(抽出結果が0行の場合の対処法)

<実行エラー>

 dt_2 = dt_1.Select(" [●●●] = '▲▲▲' ").CopyToDataTable

 ※Assign(代入)アクティビティで実施 

 

 上記式を実行した際、Selectの抽出結果が0行の場合、「ソースには、DataRow が含まれていません。」とエラーが表示されます。

f:id:rikaix:20190703220325p:plain

 

 

<対処法>

 上記データ抽出処理を「Try catch(トライキャッチ)」アクティビティで囲みます。

  ・結果が1行以上⇒ 次のアクティビティに処理が移ります。

  ・結果が0行 ⇒ 「Try catch」アクティビティの「catches」に処理が移ります。

 

 ◆Try部分 

  エラー発生は想定されるアクティビティを「Try」に入れます。

  f:id:rikaix:20190706174107p:plain

 

 ◆Catches部分 

  エラー発生時に行う処理を記載します。

  ※初心者の方は、Excepitonを「exception」で設定しておくと無難です。

  ※下記例では、後続処理の関係上、存在フラグ(bool_DataExists)を設定していますが、Catches部分にアクティビティが無くても動きます。

  f:id:rikaix:20190706174959p:plain

 

<説明>

 ・『DataTable.Select(条件)』の基本事項は、下記をご参照下さい。

rikaix.hatenablog.com

 

 ・本エラーの発生原因(ご参考程度に…)

 右辺の「dt_1.Select(" [●●●] = '▲▲▲' ")」を実行した結果が0行の場合は、「null」が返されます。そして、その「null」を「CopyToDataTable」でDataTableに変換しようとして本エラーが発生しています。