Question
DataTableのカラム名に半角カナを使用しています。
カラムの値を以下のように全角カナのカラム名で取得する際エラーとなりました。
「DataTable変数.Rows(0).item(“全角カナのカラム名”)」
※成功する端末と失敗する端末が存在します
エラーメッセージ:
System.ArgumentException: ‘検索列カテゴリー’ 引数 ‘列の名前’ の値が設定されていないかまたは無効です。
Answer
原因
Microsoft社の下記記事によりますと、環境によってエラーが生じた原因はOSのバージョンの違いである可能性があります。
Windows10 1909までは"ガ" と "ガ"のような全角 / 半角は同じ文字列として判定されていましたが、
Windows10 2004以降では OS の自然言語処理を担う NLS (National Language Support) バージョンが更新 (6.3) され異なる文字列として判定されます。
参考:
「Windows 10 バージョン 2004 以降で 半角カナのフォームを含んだ Access ファイルでエラーが発生する」
https://social.msdn.microsoft.com/Forums/ja-JP/4e6223e2-34d0-4a5f-bb61-109bc28040b6/windows-10-1249612540124721251912531-2004-201973847712391?forum=officesupportteamja
従いましてWindows10 1909までは半角と全角が一致しなくてもエラーになりませんでしたが、Windows10 2004以降でエラーが発生するようになったことが考えられます。
解決策
カラム名は全角・半角を正確に指定してください。