2

私は次のような DataGridView を持っています:

                  DGV 
       | Col 1 | Col 2 | Col 3 |

次のようになるように、データテーブルに書き込んでいるときに最初の列を削除できるかどうか疑問に思っていました。

             DataTable
        | Col 2 | Col 3 |

また、特定の値を含む行を削除することはできますか? したがって、値がデータグリッドビューにある場合は、データテーブルから削除したいと思います。例えば

                  DGV 
       | Col 1 | Col 2 | Col 3 |
       | Value | One   | Two   |
       | Value | Three | Two   |
       | Value | Four  | Two   |

したがって、DataGridView に値 "Three" がある場合、DataTable は次のようになります。

             DataTable
        | Col 2 | Col 3 |
        | One   | Two   |
        | Four  | Two   |

どんな助けでも大歓迎です!すでに行ごとに解析しようとしましたが、これを達成するためのより効率的な方法があるかどうか疑問に思っています。

4

2 に答える 2

0

GridView があるとします。それを使用してデータテーブルにコピーします。

System.Data.DataTable GridToDT = new System.Data.DataTable();

            GridToDT = (System.Data.DataTable)MyGrid.DataSource;

対応するコードは、現在のグリッドビューを GridToDt Datatable にコピーして、テーブルから列を削除する必要があるのは、列のインデックス値を見つけることです

GridToDT .Columns.RemoveAt(1);

または列名も使用して

GridToDT .Columns.Remove("Col 1");

そして、あなたの他の質問については、このようなことができます

for(int i = GridToDT .Rows.Count-1; i >= 0; i--)
 {
DataRow dr = GridToDT .Rows[i];
if (dr["Col 2"] == "Three")
    dr.Delete();
 }

これがお役に立てば幸いです。お役に立てば、お気軽に回答としてマークしてください

于 2012-09-03T04:53:57.993 に答える