2009-07-29 8 views
7

を示すADO.NETのデータビューを作成し、一方は所与DataTableDataColumn Sのみ適切サブセットを含むDataViewを作成することができますか?C位& .NETでのみ選択された列

関係代数の場合、「選択」操作(σ)を実行するためにRowFilterが割り当てられます。どのようにして "投影"操作(π)を実行しますか?

答えて

12

あなたはそれを行うことはできませんが、あなたが望むだけの列を持つテーブルのコピーを作成することができます。

DataView view = new DataView(table); 
DataTable table2 = view.ToTable("FirstColumn", "SecondColumn", "ThirdColumn"); 

オプションで、選択した列の異なる値を持つ行を返すことができます。

DataView view = new DataView(table); 
DataTable table2 = view.ToTable(true, "FirstColumn", "SecondColumn", "ThirdColumn"); 
+0

ありがとう、トーマス。私はまた、 "table2"で計算された列を含めることができるようにしたいと思います。たとえば、view.ToTable( "FirstColumn * 2"、 "SecondColumn> 0"、 "TRIM(ThirdColumn)")。 – JaysonFix

+0

テーブルでそれらを作成し、それらをToTableで選択するか、または作成した後にtable2に追加してください... –

+1

DataTabeのDefaultViewを使用すると、これを短縮できます: '$ DataTable.DefaultView.ToTable(" FirstColumn "、" SecondColumn "、" ThirdColumn ");' –

1

よく欲しいと思う理由はありません... DataViewは元のテーブルの行へのポインタのリストに過ぎず、明らかに列を削除する方法はありません元のテーブル...少なくともそのテーブルを利用している他のすべての関数に影響を与えることはありません...あなただけの列を使用してください...

-1

DataSetとそれに関連付けられた型はリレーショナル演算を実行する能力がありません。

関連する問題