私が作成するプログラムのほとんどは通常組み込まれており、 (ループまたはLinqを介して)をDataTables
選択し、次の行に沿って何かを記述して変数値を評価することにより、テーブルからデータを取得することがよくあります。DataRow
MyVar = ThisDataRow.Item("itm")
これは、特定のアイテムがである場合を除いて非常にうまく機能DBNull
します。その場合、エラーが発生します。
さて、簡単な修正は、値を返すか、アイテムの値がであるかどうかを示す単純な関数/ ifステートメントを書くこと0
です""
が、どういうわけかオブジェクトを継承して新しいプロパティ(または何でも)を作成DBNull
することが理にかなっているのだろうかと思いますエラーが発生せず、正しい値が返されることはありません)。DataRow
ItemOrEmpty
これにより、次のいずれかを使用できるようになります。
MyVar = ThisDataRow.Item("itm")
また
MyVar = ThisDataRow.ItemOrEmpty("itm")
トラップしたいかどうかによって異なりNulls
ます。
私の質問は次のとおりです。
- これを実行して、DataTableにDataRowではなくこの新しいオブジェクトを使用させる方法がわかりません-
DataRow
新しいオブジェクトを作成するのではなく、オブジェクトをオーバーロードする必要があるようですが、これを行う方法がわかりません。 - これは良い/悪い考えですか?そして、なぜあなたはそう思いますか?
DataRow.Item
これにより、毎回実行する単純な関数を作成するだけでなく、かなりのオーバーヘッドが追加されますか?
基本的に、これはかなり理論的な質問です-これは全体的に良い/悪いですか、そしてこれをどのように達成できますか?
ありがとう!!!