DataTable で (Excel ファイルから) データを読み込んで、これをフィルター処理して、特定の列のみを他の列にコピーしたい!
データテーブル形式:
some data
ColA|ColB|ColC
xxxx|xxxx|xxxx
some data
some dataColA-ColC に関連しない他のテーブル データを表します
xxxx を含む ColA-ColC を新しい DataTable にコピーするにはどうすればよいですか?
どうも
対象列のみを使用してコピー DataTable を定義します。次のサンプル コードを使用して、ソース行の列をループし、値をターゲット行に設定できます。
public void IntegrateRow(DataRow p_RowCible, DataRow p_RowSource)
{
try
{
foreach (DataColumn v_Column in p_RowCible.Table.Columns)
{
string ColumnName = v_Column.ColumnName;
if (p_RowSource.Table.Columns.Contains(ColumnName))
{
p_RowCible[ColumnName] = p_RowSource[ColumnName];
}
}
}
catch (Exception e)
{
...
LINQを使用して実現できます
が 2 つあるとしDataTableます。1.dtSourceと 2. dtDestination.
行がない場合dtDestinationは、以下のコードを使用して空白行を生成します。
dtSource.AsEnumerable().All(row => { dtDestination.Rows.Add(); return true; });
以下のコードは、特定のDataColumnデータをDataColumn別のにコピーしますDataTable。両方のテーブルの行数が同じであると仮定します。
int rowIdx = 0;
dtDestination.AsEnumerable().All(row => { row["colName"] = dtSource.Rows[rowIdx++]["colName"]; return true; });