今回のテーマ
こんにちは、サルモリです。
今回は下記のテーマについて書いていきます。
今回のテーマ
DataTable型の行の追加、修正、削除方法について解説
下記の記事の続きです。
こちらもCHECK
-
【C# sharp】DataTable型のテーブルの作成、列の追加、行の追加、要素の参照方法
ChatGPTのAPIを使わずに自動化することが可能です。 下記の本を読めば、ChatGPT4でも料金掛からずに自動化できます!KindleUnlimited会員であれば無料で読めます。 今回のテーマ ...
続きを見る
行の追加、修正、削除方法がDataTable型だと分かりにくいので記事にします。
行の追加
Addメソッド
Addメソッドに関しては、前回の記事でも行いました。
DataRow型を定義し、各列の値を設定した後にAddメソッドを使用することで追加できます。
ソースコードを見ていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System; using System.Data; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dt.Rows.Add(dr); Console.WriteLine(dt.Rows[0]["Name"]); } } |
出力結果
Rockman
DataRowを定義して、各列に値を設定し、追加することが出来ていますね。
InsertAtメソッド
InsertAtメソッドを使用しても行の追加ができます。
引数1に追加したい行を引数2に追加したい行数を指定します。
ソースコードを見てみましょう。
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 |
using System; using System.Data; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Rollchan"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Pink"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Fireman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; //値を指定した行に挿入する dt.Rows.InsertAt(dr,0); foreach(DataRow robot in dt.Rows) { Console.WriteLine(robot["Name"]); } } } |
command
Fireman
Rockman
Rollchan
ファイヤーマンが1番目に来ましたね。好きな行数に行を追加したい場合はInsertAtメソッドを使用しましょう!
値の修正
続けて値の修正方法について解説します。値の修正方法は対象の要素に対して、値を代入するだけです。
ソースコードの例をみてください。
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 |
using System; using System.Data; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Rollchan"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Pink"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Fireman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dt.Rows.Add(dr); //値を修正する dt.Rows[0]["Name"] = "NewRockman"; dt.Rows[2]["Name"] = "NewFireman"; foreach (DataRow robot in dt.Rows) { Console.WriteLine(robot["Name"]); } } } |
出力結果
NewRockman
Rollchan
NewFireman
ロックマンとファイヤーマンの値が変更されていますね。
行の削除
RemoveメソッドとRemoveAtメソッド
削除の方法はRemoveメソッドかRemoveAtメソッドを使用します。
下記のソースコードをみてください。
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 |
using System; using System.Data; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Rollchan"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Pink"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Fireman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; dt.Rows.Add(dr); //ロックマンを削除 dt.Rows.Remove(dt.Rows[0]); //ロールちゃんを削除 dt.Rows.RemoveAt(0); foreach (DataRow robot in dt.Rows) { Console.WriteLine(robot["Name"]); } } } |
出力結果
Fireman
Removeメソッドでロックマンの行を削除、RemoveAtメソッドでロールちゃんの行を削除しています。
Removeメソッドでは、DataRow型を引数に指定します。RemoveAtメソッドではint型の行のインデックスを指定します。
状況に応じて、どちらのメソッドを使用するか使い分けてくださいね。
Clearメソッド
全ての行を削除したい場合は、Clearメソッドを使用しましょう。
ソースコードを見てみます。
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 |
using System; using System.Data; class Program { static void Main(string[] args) { DataTable dt = new DataTable("Robot"); dt.Columns.Add("Name"); dt.Columns.Add("Maker"); dt.Columns.Add("Color"); DataRow dr = dt.NewRow(); dr["Name"] = "Rockman"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Blue"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Rollchan"; dr["Maker"] = "Dr_Light"; dr["Color"] = "Pink"; dt.Rows.Add(dr); dr = dt.NewRow(); dr["Name"] = "Fireman"; dr["Maker"] = "Dr_Wily"; dr["Color"] = "Red"; //値を指定した行に挿入する dt.Rows.Add(dr); dt.Rows.Clear(); foreach(DataRow robot in dt.Rows) { Console.WriteLine(robot["Name"] + "です。"); } } } |
出力結果
Clearメソッドで追加した行を全て削除しているので、何も出力されませんね。
まとめ
今回はDataTable型の行の追加、修正、削除について書きました。
そこまで難しくないと思いますので、ぜひ覚えてくださいね。
それでは最後まで見て頂き、ありがとうございました。
リストや配列などの記事についてはこちら
配列、リストなどの記事はこちら