■ 基本的な使い方
データを追加するには...
var dataTable = new DataTable(); dataTable.Columns.Add("ID", typeof(string)); dataTable.Columns.Add("Value", typeof(string)); dataTable.Rows.Add("X001", "Tokyo"); dataTable.Rows.Add("X002", "Osaka");
データを任意の場所に挿入する
InsertAt(【DataRow】, 【インデックス】)を使うusing System; using System.Data; using System.Windows.Forms; namespace SampleForm { public partial class Form1 : Form { private DataTable dataTable; public Form1() { InitializeComponent(); this.dataTable = new DataTable(); this.dataTable.Columns.Add("ID", typeof(string)); this.dataTable.Columns.Add("Value", typeof(string)); this.dataTable.Rows.Add("X002", "Tokyo"); this.dataTable.Rows.Add("X001", "Osaka"); this.dataGridView1.DataSource = dataTable; } private void button1_Click(object sender, EventArgs e) { var datarow = this.dataTable.NewRow(); datarow["ID"] = "X003"; datarow["Value"] = "Nagoya"; this.dataTable.Rows.InsertAt(datarow, 0); } } }参考文献
http://noudikara.jugem.jp/?eid=15
https://accelboon.com/tn/c-datarow%E3%81%AE%E9%85%8D%E5%88%97%E3%82%92datatable%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/
特定の値を取得するには...
* いくつか方法があるが、結局は「例3:Linqを使用した場合」がいいと思う例1:Select() を使用した場合
DataRow[] rows = this.dataSet.testTable.Select("id = true"); foreach (dataSet.testTableRow row in rows) { // ★ここに処理を書く }例2:Whereを使用した場合
var items = this.dataSet.testTable.Where(row => row.flg == true) foreach (var item in items) { // ★ここに処理を書く }http://www.atmarkit.co.jp/fdotnet/basics/adonet06/adonet06_01.html
例3:Linqを使用した場合
* 以下の関連記事も参照。https://blogs.yahoo.co.jp/dk521123/37976709.html
■ 使用上の注意
DataTable の Clone() について
* DataTable の Clone() は、他のクラスの Clone() と結果が違う => Clone() は、構造だけコピー(データはコピーされない) => データも含めてインスタンス生成したい場合は、 Copy() を使う参考文献
http://teabreak.info/blog/2013/11/19/c-datatable%E3%81%AEclone%E3%81%A8copy/1596/
http://okwakatta.net/code/dst08.html
関連記事
DataTable関連
DataTable ~ 基礎知識編 ~https://blogs.yahoo.co.jp/dk521123/10415992.html
DataTable ~ あれこれ編 ~
https://blogs.yahoo.co.jp/dk521123/20413895.html
DataTable ~ DISTINCT / 重複した値を省くには... ~
https://blogs.yahoo.co.jp/dk521123/14321146.html
DataTable ~ 重複を気にせずカウントするには... ~
https://blogs.yahoo.co.jp/dk521123/31382607.html
DataSet / DataTable ~ データテーブルのソート ~
https://blogs.yahoo.co.jp/dk521123/15231236.html
DataSet と TableAdapter について
https://blogs.yahoo.co.jp/dk521123/10415992.html
DataTable ~ DataTable で Linq する ~
https://blogs.yahoo.co.jp/dk521123/37976709.html