2022/07/20

縮小キャスト?

 C#で普通にint型を使う時、データベースからExecuteScalar()使って単にレコード数を取得するのに

cmd.CommandText = "SELECT COUNT(*) FROM テーブル";
int iRec = (int)cmd.ExecuteScalar();
てな感じでしようとするとエラーになる。まあ、System.Int64をSystem.Int32にしようとすれば、オーバーフロー起こす可能性はあるので分からんでもないけど、
int iRec = Convert.ToInt32(cmd.ExecuteScalar());
とする必要があった。まあ、実際にはレコード数がInt32でオーバーフローする程のデータを抱える事は想定してませんが面倒な話です。

あっ、でもこれ、今回のプロジェクトのターゲットをJV-Linkが64bit未対応な為にx86にしているのが原因なのかも。そうだとするとJV-Linkが64bit化されたらこんなコーディング不要なのかも?

0 件のコメント:

コメントを投稿