Out of Memory

ごめん、忘れてた。

目次

Blog 利用状況

ニュース

2008年7月1日
Microsoft MVP for Developer Tools - Visual C++ を再受賞しました。
2008年2月某日
MVPアワードがVisual C++に変更になりました。
2007年10月23日
blogタイトルを変更しました。
2007年7月1日
Microsoft MVP for Windows - SDKを受賞しました!
2007年6月20日
スキル「ニュース欄ハック」を覚えた!
2006年12月14日
記念すべき初エントリ
2006年12月3日
わんくま同盟に加盟しました。

カレンダー

中の人

シャノン@わんくま同盟北埼玉支部

顔写真

埼玉を馬鹿にする奴は俺が許さん。

基本的に知ったかぶり。興味を持った技術に手を出して、ちょっと齧りはするものの、それを応用して何か形にするまでは及ばずに飽きて放り出す人。

Microsoft MVP for Windows SDK July 2007 - February 2008, Microsoft MVP for Visual C++ February 2008 - June 2009
Microsoft MVP for Windows SDK
July 2007 - February 2008
Microsoft MVP for Visual C++
February 2008 - June 2009

アクセサリ

あわせて読みたい

e-Words

アフィリエイト

記事カテゴリ

書庫

日記カテゴリ

DataTable.DefaultViewは使うな。

いや、ま。ちゃんとわかって使ってるんならいいんですけども。

言うまでもなく、DefaultViewはDataTableオブジェクトが存命している限り存命であり、1つのDataTableに対して1つしかありません。
ということは…

//ある場所では、新規追加したレコードだけを抽出しようと思って…
DataView dv = dataTable.DefaultView;
dv.RowStateFilter = DataViewRowState.Added;
foreach( DataRowView drv in dv )
{
//一行ずつ処理
}

とかやっといて、

//別の場所では、RowFilterで絞り込み…
DataView dv = dataTable.DefaultView;
dv.RowFilter = "ColumnA=1";
foreach( DataRowView drv in dv )
{
//あれ? dvが空っぽ…
}

なんてことに(実際なりました)。

原因は最初の方で設定したRowStateFilterがまだ有効だったため。

教訓:
その場しのぎのフィルタリングにDefaultViewを使うべからず。
DataViewを新しく作って使い捨てるべし。

投稿日時 : 2007年1月24日 16:15

Feedback

# 先週の技術的な備忘録 2007/10/22 1:46 やじゅ@アプリケーション・ラボ わんくま支局

先週の技術的な備忘録

# 先週の技術的な備忘録 2007/10/22 1:56 やじゅ@アプリケーション・ラボ わんくま支局

先週の技術的な備忘録

# DataTableおよびDataViewの注意点 2007/11/18 21:56 やじゅ@アプリケーション・ラボ わんくま支局

DataTableおよびDataViewの注意点

# DataTableおよびDataViewの注意点 2007/11/18 22:01 やじゅ@アプリケーション・ラボ わんくま支局

DataTableおよびDataViewの注意点

タイトル  
名前  
Url
コメント