[ad_1]
id と date の 2 つの列を持つ DataTable があります (DateTime 形式 -> yyyy-dd-MMThh:mm:ss)。
今月に対応するデータを表示する必要があります。 どのように可能ですか?
解決策 1
通常、私は DataTable を検索しません。代わりに DataView をフィルター処理する傾向があります。
DataGridView を使用していると仮定すると、DataTable をソースとして使用してクラス レベルの DataView を作成し、DataView を DGV の DataSource として使用します。
C#
private DataView dvBooks = new DataView(); ... DataTable dt = myList.ToDataTable(); dvBooks = new DataView(dt); dgvBooks.DataSource = dvBooks;
次に、RowFilter プロパティを使用して、表示された行をフィルター処理します。
C#
dgvBooks.RowFilter = "2024/11/21 LIKE '%-" + monthNumber.ToString("D2") + "T%'";
システムは一致するレコードのみを表示します。
解決策 3
ADO.NET(DataTable.Select): DataRow[] filteredRows = tb.Select("CREATOR LIKE '%" + searchstring + "%'");
ADO.NET(DataView.RowFilter): tb.DefaultView.RowFilter = "CREATOR LIKE '%" + searchstring + "%'";
解決策 4
LINQ-To-DataSet (which i prefer): var filtered = tb.AsEnumerable() .Where(r => r.Field<String>("CREATOR").Contains(searchstring)); ADO.NET(DataTable.Select): DataRow[] filteredRows = tb.Select("CREATOR LIKE '%" + searchstring + "%'"); ADO.NET(DataView.RowFilter): tb.DefaultView.RowFilter = "CREATOR LIKE '%" + searchstring + "%'";
解決策 2
使用 選択する レコードをフィルタリングする Datatable のメソッド。 これにより、DataRow の配列が返されます。
[ad_2]
コメント