前提
DataBaseから取得したデータをDataTableに格納しています。
SQLで取得したデータが入っています。
各カラムの型は
ID:int
Name:string
Age:int
Option:string
となります。
開発環境
Windows10
VisualStudio Community 2019 Version 16.8.5
.NET Framework 4.7.2
Oracle 11g
実現したいこと
データが格納されているDataTableから条件を指定して
必要なカラムだけを残したDataTableをLinqのSelectを使って取得したい。
SQLのようにselect id, name from dataみたいに完結に書けないでしょうか。
ソースコード
データ取得方法
c#
1using (OracleCommand command = new OracleCommand(sql, conn)) { 2 using (OracleDataAdapter dataAdapter = new OracleDataAdapter(command)) { 3 DataSet dataSet = new DataSet(); 4 dataAdapter.Fill(dataSet); 5 DataTable dataTable = dataSet.Tables[0].Copy(); 6 return dataTable; 7 } 8}
カラムに ID, Name, Age, Option があるとします。
条件:Option = '1'
欲しい列:ID, Name
※ [DataBase]~のデータ取得クラスは仮想です
※ Selectの書き方のようなイメージです(実際にはエラーになります)
c#
1DataTable data = [DataBase].GetData(sql); // 2DataTable result = data.AsEnumerable() 3 .Where(x => x["Option"] == '1') 4 .Select(x => new {id = x["ID"].ToString(), 5 name = x["Name"].ToString()});
回答1件
あなたの回答
tips
プレビュー