ぽざうねっと

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  396  : 記事  0  : コメント  1030  : トラックバック  66

ニュース

さて、今年の秋は何を漬けようか

書庫

日記カテゴリ

Accessory

Community

Private

COL1COL2
1-11-2
2-12-2

こんな DataTable があったとします。(仮に tbl とします)
下記のコードを実行します。
すると結果は下のようになります。
COL1COL2COL3COL4
1-11-220
2-12-220
3-13-21020

DefaultValue の設定のタイミングと DataTable への登録のタイミングで結果が変わります。

また、この時下記の処理を実行してみましょう。
すると、InvalidCastException が発生します。
DataType が指定されていない場合、int や bool は文字列として格納されます。
つまり "20" という文字列が値として入っていたから例外が発生するわけですね。
としておけば、int 型として格納されますので、上記でキャスト例外は発生しません。
直感的なコーディングのためにも、DataType プロパティは指定しましょう。

次に下記の処理を行ってみましょう。
すると結果は下のようになります。
COL1COL2COL3COL4
1-11-220
2-12-220
3-13-21020
4-14-210

Rows.Add メソッドにオブジェクト配列で値を渡す場合、null と DBNull.Value では結果が異なります。
AllowDBNull が false の場合、どちらもはじかれます。

いまさらですが、特にキャストでちょっとはまったのでメモ
参照型ならどーなんだ、列挙体はどーなんだ?とかまだまだありそうですが、それはおいおい調べてみよう。
投稿日時 : 2008年3月5日 1:21

コメント

No comments posted yet.

Post Feedback

タイトル
名前
Url:
コメント: