C#小ネタ(DataGridViewの中身をDataTableに投入する)

job_programmer C#
CopyRight https://www.irasutoya.com/

物忘れが激しい自分に捧げる覚書パートツーです。逆はしょっちゅうやるのですが、「あれ?あれれれ??」となったのでググりました。

先人に感謝

こちらを参考にさせて頂きました。良記事に感謝です!

DataGridViewをDataTableに変換 C# | 文系出身のSEですが、何か (loosecarrot.com)

地道にやるしかなかった

1セルずつ地道にやります。

DataTable dt = new DataTable();

// i:DataGridViewの列番号 j:DataGridViewの行番号
int i, j;

// DataTableに列を作ります
for(i=0; i<DataGridView1.ColumnCount; i++)
{
    dt.Columns.Add(DataGridView1.Columns[i].HeaderText);
}

// 行数分繰り返し
for(j=0; j<DataGridView1.Rows.Count; j++)
{
    // DataTableの行作成
    DataRow dataRow = dt.NewRow();

    // 列数分繰り返し
    for (i = 0; i < DataGridView1.Columns.Count; i++)
    {
        // j + 1 行目の i + 1 列列目をDataTableに投入
        dataRow[i] = DataGridView1.Rows[j].Cells[i].Value;
    }

    // 行追加
    dt.Rows.InsertAt(dataRow, j);
}

まとめ

クリップボードの内容をペーストするのなんかもそうですが、DataGridViewまわりの処理は需要ありそうなのに自分で実装するしかないのが残念なところです。

コメント