データテーブルの値を取得しようとするとコンパイルエラーになる

データテーブルの値を取得する際の記述方法として、『データテーブル名(行)(列)』を紹介している記事がいくつかあるのですが、
私がその書き方をすると「'ElementAtOrDefault’は’System.Data.EnumerableRowCollection(Of System.Data.DataRow)のメンバーではありません」というコンパイルエラーになってしまいます。

データテーブル名.Rows(行).Item(列).ToStringだと上手くいくのでそちらを使っていますが、
やたらと長い式になってしまうので簡単な書き方を探しています。
どのあたりで間違っているのでしょうか?

Hi @wewew

Inside For Each row in datatable

You can use CurrentRows(“Your column Name”).ToString

OR

CurrentRows.item(“Your column Name”).Tostring

Regards
Sudharsan

こんにちは

インターネット上でも類似の事例がいくつかあがっているので解決できるか
わかりませんが、とりいそぎ切り分けの意味も込めて以下試してみてはと思います。

まず当方の手元の環境(CE 21.4.4)では、現象が再現できませんでした。

img20210812-1

このプロジェクトを、 @wewew さんの環境で開いたときにどうなるかの確認。

Sample20210812-2.zip (2.4 KB)

もし同様のエラーが出るようでしたら、環境要因が濃厚になります。
出ないようでしたら、結果的にはプロジェクトの構成ファイルの問題になるかと思います。
後者の場合、同様のプロジェクトを新規に作成いただき、エラーが発生している状態で
プロジェクトファイル一式を共有いただけると良いと思います。

Yoichiさん
ご回答ありがとうございます。

頂いたプロジェクトではエラーは出ませんでした。
また私の環境で新しいプロジェクトを作成し直した場合でも上手く行っています。

素人なりにxamlファイルの中身を比較して検証してみたのですが、

<TextExpression.NamespacesForImplementation> に、
<x:String>System.Linq</x:String> が無いと今回のエラーが出るみたいでした。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.