C#.NETのサンプルコードを掲載しています。
      
条件に当てはまるレコードをDataTableから削除する。
DataTable内のレコードをループ文で最初から順々に条件が当てはまるかどうか
判定しDeleteメソッドもしくはRemoveメソッドで削除します。
単純な処理ですがDeleteメソッドで削除したレコードに再度アクセスすると
エラーとなるので気をつける必要があります。
一度作っておけば後は再利用すればよいので作ってみました。


テストコード
1
2
3
4
5
6
7
8
9
DataSetController.DeleteSelectRows(dt, "商品名 LIKE '%パン'");

for (int i = 0; i < dt.Rows.Count; i++)
{
    if (dt.Rows[i].RowState != DataRowState.Deleted)
    {
        Console.WriteLine(dt.Rows[i][1]);
    }
}

DataSetController.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
public class DataSetController
{
    /// <summary>
    /// 条件に当てはまるレコードをDataTableから削除します。
    /// </summary>
    /// <param name="dt">データテーブル</param>
    /// <param name="filter">条件</param>
    /// <returns>0:正常終了 -1:異常終了</returns>
    public static int DeleteSelectRows(DataTable dt, string filter)
    {
        try
        {
            DataRow[] rows = dt.Select(filter);

            for (int i = 0; i < rows.Length; i++)
            {
                if (rows[i].RowState != DataRowState.Deleted)
                {
                    rows[i].Delete();
                }
            }
            return 0;
        }
        catch (Exception)
        {
            return -1;
        }
    }

    /// <summary>
    /// 条件に当てはまるレコードをDataTableから削除します。
    /// </summary>
    /// <param name="dt">データテーブル</param>
    /// <param name="filter">条件</param>
    /// <returns>0:正常終了 -1:異常終了</returns>
    public static int RemoveSelectRows(DataTable dt, string filter)
    {
        try
        {
            DataRow[] rows = dt.Select(filter);

            for (int i = 0; i < rows.Length; i++)
            {
                if (rows[i].RowState != DataRowState.Deleted)
                {
                    rows[i].Delete();
                }
            }
            dt.AcceptChanges();
            return 0;
        }
        catch (Exception)
        {
            dt.RejectChanges();
            return -1;
        }
    }
}

出力
チョココロネ
クロワッサン

      
DataSet






Copyright (C) 2011 - 2015 猫の気ままなC#日記