Fun Coding

学んだことを記録していきます!

【C#】データテーブルの行の削除の方法

データテーブルの行の削除の方法をサンプルコードを交えて解説したいと思います。

説明

方法
メソッド名
説明
Delete 指定したDataRowを削除
Remove 引数に指定したDataRowを削除
RemoveAt 指定したインデックスのDataRowを削除
Clear 全ての行を削除

コード
using System;
using System.Data;

namespace Sample {
    /// <summary>
    /// メインプログラム
    /// </summary>
    public class Program {
        /// <summary>
        /// テーブルの行の削除
        /// </summary>
        static void Main() {
            // テーブルの生成
            var table = new DataTable();

            // テーブルに列を追加
            table.Columns.Add("名前", typeof(string));
            table.Columns.Add("年齢", typeof(int));

            // テーブルに行を追加
            table.Rows.Add("一郎", 10);
            table.Rows.Add("二郎", 20);
            table.Rows.Add("三郎", 30);
            table.Rows.Add("四郎", 40);
            table.Rows.Add("五郎", 50);


            // 指定した行を削除
            table.Rows[1].Delete();

            // テーブルの行を出力
            Console.WriteLine("指定した行を削除");
            foreach(DataRow dataRow in table.Rows) {
                foreach(DataColumn dataColumn in table.Columns) {
                    Console.WriteLine(dataColumn.ColumnName + " : " + dataRow[dataColumn.ColumnName]);
                }
            }
            Console.WriteLine();


            // 指定した行を削除
            table.Rows.Remove(table.Rows[1]);

            // テーブルの行を出力
            Console.WriteLine("指定した行を削除");
            foreach(DataRow dataRow in table.Rows) {
                foreach(DataColumn dataColumn in table.Columns) {
                    Console.WriteLine(dataColumn.ColumnName + " : " + dataRow[dataColumn.ColumnName]);
                }
            }
            Console.WriteLine();


            // 指定したインデックスの行を削除
            table.Rows.RemoveAt(1);

            // テーブルの行を出力
            Console.WriteLine("指定したインデックスの行を削除");
            foreach(DataRow dataRow in table.Rows) {
                foreach(DataColumn dataColumn in table.Columns) {
                    Console.WriteLine(dataColumn.ColumnName + " : " + dataRow[dataColumn.ColumnName]);
                }
            }
            Console.WriteLine();


            // 全行を削除
            table.Rows.Clear();

            // テーブルの行を出力
            Console.WriteLine("全行を削除");
            foreach(DataRow dataRow in table.Rows) {
                foreach(DataColumn dataColumn in table.Columns) {
                    Console.WriteLine(dataColumn.ColumnName + " : " + dataRow[dataColumn.ColumnName]);
                }
            }
            Console.WriteLine();
        }
    }
}
出力
指定した行を削除
名前 : 一郎
年齢 : 10
名前 : 三郎
年齢 : 30
名前 : 四郎
年齢 : 40
名前 : 五郎
年齢 : 50

指定した行を削除
名前 : 一郎
年齢 : 10
名前 : 四郎
年齢 : 40
名前 : 五郎
年齢 : 50

指定したインデックスの行を削除
名前 : 一郎
年齢 : 10
名前 : 五郎
年齢 : 50

全行を削除