【C#】データテーブルの指定した位置に行追加する【DataTable】
指定した位置に行追加する
「dt.Rows.InsertAt(DataRow, int)」を使用して、指定した位置に行を追加します。
第一引数のDataRowには、追加するためのDataRowを用意
第二引数のintには、追加したい行の位置を指定します。
※注意
第二引数のintには、0以上を指定しないと例外エラーが発生します。
また、データテーブルの行数以上の指定は末尾に追加されることになります。
ここでは、ぶどうとみかんの間に新規行を追加しています。
// データテーブルの初期化
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
// 行追加
dt.Rows.Add("りんご", "3", "50", "150");
dt.Rows.Add("ぶどう", "1", "200", "200");
dt.Rows.Add("みかん", "10", "30", "300");
/*
今回の内容はここから
*/
// 行インデックスを取得する
DataRow dr = dt.NewRow();
dt.Rows.InsertAt(dr, 2);
// データテーブルの中身
// index:HINMEI
// 0:りんご
// 1:ぶどう
// 2: ◇新規行
// 3:みかん
コピペですぐ試せるソースコード
今回は、まとめる必要がありませんでしたが、メソッド形式のソースコードも記載したいので載せます。
ソースコードをコピペするとそれぞれの動作が確認できると思います。
private void DataTable_Rows_InsertAt()
{
DataTable dt = new DataTable();
// データテーブルの名前を指定
dt.TableName = "FRUIT";
// 列追加
dt.Columns.Add("HINMEI");
dt.Columns.Add("SURYO");
dt.Columns.Add("TANKA");
dt.Columns.Add("KINGAKU");
// 行追加
dt.Rows.Add("りんご", "3", "50", "150");
dt.Rows.Add("ぶどう", "1", "200", "200");
dt.Rows.Add("みかん", "10", "30", "300");
/*
今回の内容はここから
*/
// 行インデックスを取得する
DataRow dr = dt.NewRow();
dt.Rows.InsertAt(dr, 2);
// データテーブルの中身
// index:HINMEI
// 0:りんご
// 1:ぶどう
// 2: ◇新規行
// 3:みかん
}
まとめ
グリッドの中に行追加ボタンがあって、
押されたすぐ下の行に追加しないといけないって場合には、とても便利ですね。
いちいちデータテーブルを作り直す必要がないので、
間に追加しないといけない場合にはInsertAt を活用していきましょう。
Microsoft 公式ページ
DataRowCollection.InsertAt(DataRow, Int32) メソッド
お問い合わせ先
Twitterの利用再開しましたのでお問い合わせのある方はTwitterまでご連絡ください。
最近のコメント