データテーブルから、複数の検索条件によりselectしdatarow配列に代入したいと考えています。
select文は次ように書いているのですが、成功するときもあるのですが、「代入:UiPath.Excel.ExcelValue と System.String の比較は実装されていません」とエラーが出てしまう場合があります。
左辺:DataRow
右辺:
dt.Select(“Convert([客コード], System.String) = '” & CurrentRow(“客コード”).ToString.Trim & “’
AND Convert([入金日], System.String)= '” & CurrentRow(“入金日”).ToString.Trim & “’
AND Convert([入金額], System.String)='”& CurrentRow(“入金額
計”).ToString.Trim & “’
AND Convert([販売額], System.String)='”& CurrentRow(“販売額”).ToString.Trim & “'”)
前提条件:
・データテーブルは、エクセルAを読み込んでいます。
・CurrentRowは、エクセルBを読み込んだデータテーブルの各行を繰り返しています。
・2つのエクセル自体は、構造は同じで、この処理の後にBの内容をAに転記しています。
・Aのなかに、現在処理している行(B)と同じものがないかどうかをチェックする目的で行を抽出しています。
・テスト実行して、成功するときもあれば失敗する場合もあります。(一番下のJ011280100で頻繁に発生しますが、絶対ではない)
エクセルA
|客コード|入金日|入金額|販売額|
|JA006600100|20240917|0|615054|
|JA011200100|20240910|164428|164428|
|JA011280100|20240910|1262059|1262058|
エクセルB→CurrentRow
★問題なく処理できる
DataRow { HasErrors=false, ItemArray=object[14] { [JA006600100], [kaisyamei], 31, 33, 49, 51, 52, 55, 20240917, “0”, “615054”, 615054, “未確認”, }, RowError=“”, RowState=Added, Table=[DataTable] }
★エラーが出る場合がある
DataRow { HasErrors=false, ItemArray=object[14] { [JA011280100], [kaisyamei], 71, 73, 149, 151, 152, 155, 20240910, “1262059”, “1262058”, 1, “未確認”, }, RowError=“”, RowState=Added, Table=[DataTable] }
成功する場合と失敗する場合の違いが判らず困っています。
どのような可能性が考えられるでしょうか。
もしくは、selectの方法自体を変更するなど、回避策はありますでしょうか。