C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■90101 / 1階層)  DataTableから行を削除する方法
□投稿者/ 魔界の仮面弁士 (2043回)-(2019/02/08(Fri) 19:05:38)
No90100 (やまびこ さん) に返信
> DataTableに1列、重複の無いデータが入っています。指定した文字列と合致する行をDataTableから削除したいです。

削除するなら、該当行の Delete メソッド
除去するなら Rows.Remove / RemoveAt メソッド


前者は行に対して「削除済み」マークを付けるものです。(DataRowState.Deleted)
DataGridView にバインドして行削除したような場合は、この状態になります。
削除済み行は、削除結果をデータベース等に反映させるために使われます。

一方後者は、DataTable 上から完全に取り除きます。(DataRowState.Detached)
前者の削除済み行に対して AcceptChanges メソッドを呼んだ場合も、後者の状態になります。


> DataTableの上から下までForEachでまわして、合致しているデータがあれば、その行を消すといった処理方法しかないでしょうか?
DataTable の PrimaryKey プロパティが設定されていれば、
DataTable の .Rows.Find メソッドで検索できます。

PrimaryKey が未設定、または PrimaryKey 以外の検索の場合には、
DataTable の Select メソッドや DataView クラスの Filter プロパティを使えます。
ただ、これらは検索式を文字列として記述しなければならないので、
LINQ の where クエリ(または Where 拡張メソッド)で取得したほうが良いでしょう。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←DataTableから行を削除する方法 /やまびこ →Re[2]: DataTableから行を削除する方法 /やまびこ
 
上記関連ツリー

DataTableから行を削除する方法 / やまびこ (19/02/08(Fri) 18:21) #90100
DataTableから行を削除する方法 / 魔界の仮面弁士 (19/02/08(Fri) 19:05) #90101 ←Now
  └ Re[2]: DataTableから行を削除する方法 / やまびこ (19/02/08(Fri) 20:07) #90102
    └ Re[3]: DataTableから行を削除する方法 / 魔界の仮面弁士 (19/02/08(Fri) 22:49) #90104
      └ Re[4]: DataTableから行を削除する方法 / やまびこ (19/02/13(Wed) 11:06) #90162 解決済み

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信