System.Int32 および System.String で '>=' 操作を実行できません。
Visual Basic 2010 のお話です。
あるプロジェクトで、 DataTable について次のようなコードを書いて実行したらエラーになりました。 データベースから取得したデータを DataTable に格納し、その中の数値型フィールド「MyField」に対して操作を行うコードです。
Dim dt As DataTable
...
Dim dr() As DataRow
dr = dt.Select("MyField >= " & "20000101")
一部省略していますが、dt はデータベースから取ってきたデータを格納していて、 MyField は数値型のフィールドです。 “20000101” は変数だったのですが、ここではわかりやすくするために直接値を指定しています。
これを実行するとエラーが出ます。
System.Int32 および System.String で ‘>=’ 操作を実行できません。
英語の場合は次のメッセージが出るようです。
Cannot perform ‘>=’ operation on System.Int32 and System.String.
MyField は数値のはずなのですが、どうもそんなにうまくはいかないようです。 おそらく MyField が NULL(値なし) の場合にエラーになっているのだろう・・・ということで、 次のようにしたら問題なく動くようになりました。
dr = dt.Select("MyField <> '' AND MyField >= 20000101")