0

.net Framework 4.0 で発生した問題

現在、月の選択用と年選択用の 2 つのドロップダウンリストがあります。

どちらのデータソースも、年と月を列として行を返す SQL のデータテーブルです。次に、datatextfield と datavaluefield を使用して、使用する列を指定します。例:

string sql = "select.... group by...";//the query

DataTable dtMonthYear = db.getDataTable(sql); //got the datatable

ddlMonth.DataSource = dtMonthYear;
ddlMonth.DataTextField = "Month";
ddlMonth.DataValueField = "Month";
ddlMonth.DataBind();

ddlYear.DataSource = dtMonthYear;
ddlMonth.DataTextField = "Year";
ddlMonth.DataValueField = "Year";
ddlYear.DataBind();

そのため、その年には重複した項目が含まれており、重複した項目を排除したいと考えています。

linq でできることがわかりましたが、残念ながら私のフレームワークは 4.0 までしかなく、datarowextension を使用できません。ここに私が得たリンクがあります: DataTable に対する LINQ クエリ

他のアイデアはありますか?

ありがとう

4

1 に答える 1

1

You can use Linq-To-DataSet in .NET 4 (even in 3.5):

DataTable years = dtMonthYear.AsEnumerable()
                  .GroupBy(r => r.Field<int>("Year"))
                  .Select( g => g.OrderBy(r => r.Field<int>("Month")).First())
                  .CopyToDataTable();

Note that you need to add using System.Linq;

于 2012-09-24T05:21:04.803 に答える