【C#】データテーブルの行を別のデータテーブルに行インポートする【DataTable】
別データテーブルに行インポートする
「dt.ImportRow(DataRow)」を使用します。
プロパティ設定、元の値、および現在の値を保持したまま、
コピー先のデータテーブルの末尾にインポートします。
コピー元とコピー先で制約が違う場合は、行はインポートされません。
// データテーブルの初期化
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");
/*
今回の内容はここから
*/
// 別データテーブルに行インポートする
DataTable dtImport = dt.Clone();
dtImport.ImportRow(dt.Rows[1]);
コピペですぐ試せるソースコード
今回は、まとめる必要がありませんでしたが、メソッド形式のソースコードも記載したいので載せます。
ソースコードをコピペするとそれぞれの動作が確認できると思います。
private void DataTable_ImportRow()
{
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");
/*
今回の内容はここから
*/
// 別データテーブルに行インポートする
DataTable dtImport = dt.Clone();
dtImport.ImportRow(dt.Rows[1]);
}
まとめ
「dt.Rows.Add()」で例外エラーになったときに
「dt.ImportRow()」でエラーも回避できるし、行も正しく追加された。
と、軽い感じプログラミングしていた時期がありました。
正しく使い分けることが大事に思います。
Microsoft 公式ページ
DataTable.ImportRow(DataRow) メソッド
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datatable.importrow?view=netframework-4.0
お問い合わせ先
Twitterの利用再開しましたのでお問い合わせのある方はTwitterまでご連絡ください。
最近のコメント