【C#】データテーブルの列を削除する【DataTable】
列名を指定して削除する(文字列)
「dt.Columns.Remove(“")」のダブルコーテーション(“")中に
文字列で列名を指定する事で列の削除が可能となります。
ここでは、列名が HINMEI(品名) の列を削除していきます。
// データテーブルの初期化
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
/*
今回の内容はここから
*/
// 列名を指定して削除する(文字列)
dt.Columns.Remove("HINMEI");
列を指定して削除する(DataColumn)
「dt.Columns.Remove(DataColumn)」を使用します。
まずは削除したい列項目を取得します。
取得したDataColumnをdt.Columns.Remove(DataColumn)と指定する事で
列の削除が可能となります。
ここでは、TANKA(単価)を削除していきます。
// データテーブルの初期化
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
/*
今回の内容はここから
*/
// TANKAのDataColumnを取得
DataColumn dc = dt.Columns["TANKA"];
// 列を指定して削除する(DataColumn)
dt.Columns.Remove(dc);
インデックスを指定して削除する(Index)
「dt.Columns.RemoveAt(index)」を使用します。
削除したい列のインデックスを指定する事で、列が削除されます。
インデックスが指定できるのはRemoveAtのみです。Removeではできません。
ここでは、(SURYO)数量を削除しています。※数量のインデックスは 1 です。
// データテーブルの初期化
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
/*
今回の内容はここから
*/
// インデックスを指定して削除する(Index)
dt.Columns.RemoveAt(1);
コピペですぐ試せるソースコード
3種類の列削除方法を1つのソースにまとめました。
まとめた関係上、最後の列の削除はKINGAKU(金額)になります。
ソースコードをコピペするとそれぞれの動作が確認できると思います。
private void DataTable_Columns_Remove()
{
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
/*
今回の内容はここから
*/
// 列名を指定して削除する(文字列)
dt.Columns.Remove("HINMEI");
// TANKAのDataColumnを取得
DataColumn dc = dt.Columns["TANKA"];
// 列を指定して削除する方法(DataColumn)
dt.Columns.Remove(dc);
// インデックスを指定して削除する(Index)
dt.Columns.RemoveAt(1); // 削除されたのはKINGAKUとなる。
}
まとめ
今回は複数の方法で、列を削除するソースコードを記載しました。
説明した実装方法が正解ということはありません。
用途にあったやり方、自分のやりやすい実装を採用していきましょう。
以上です。
Microsoft 公式ページ
DataColumnCollection クラス
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datacolumncollection?view=netframework-4.0
DataColumnCollection.Remove メソッド
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datacolumncollection.remove?view=netframework-4.0
DataColumnCollection.RemoveAt(Int32) メソッド
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datacolumncollection.removeat?view=netframework-4.0
お問い合わせ先
Twitterの利用再開しましたのでお問い合わせのある方はTwitterまでご連絡ください。
最近のコメント