[ASP.Net]
DataRow内の指定した列に格納されているデータを取得したい場合、以下のように記述します。
DataRow.Item("列名")
DataRow内に指定した列名が存在しない場合、例外が発生してしまいます。
DataRow内に指定した列名が存在するかどうかを検索し、
存在していたら何らかの処理をするコードを書きたかったのですが、
DataRowのメンバには、それらしきメソッドが見つからずに困っていました。
1つだけ成功した方法があるので、記載します。
DataTableにDataRowを入れます。
そして、DataTable.Columns.IndexOf("列名") で、-1が戻ってきたら指定した列名が存在しない。
それ以外なら、指定した列名が存在するということがわかりました。
新しくDataTableにDataRowを入れようとすると、
新しいDataTableに列の定義を設定し、それからDataRowを格納しなければなりません。
これはとても面倒な作業です。
もう少しスマートな方法があるのではないかと考えています。
何か見つかったら追記します。
コメント (1)
3年半も前の記事にコメントするのもどうかと思いますが(^^;
DataRowクラスにはTableプロパティがあります。
ですから、わざわざ新しくDataTableを用意する必要はないのです。
あと、私はIndexOfではなく、Containsを使います。
こちらのほうがソースが分かりやすいかと思いますので。
(例)
if(dataRow.Tables.Columns.Contains("column_name")){
// 処理~
}
以上
投稿者: S-Gori | 2008年3月 8日 06:48