行数が 4 列 (名前、住所、連絡先、マーク) のデータテーブル dt1 があり、行数が少ない 2 列 (StdName、StdAddress) の別のデータテーブル dt2 があります。
dt1 = dt2.copy(); のようなことをしているとき それから私のdt1は変化しています。私はしたくない。
dt2 列と値を dt1 にコピーしたい。私のdt1の列(名前と住所)には、stdNameとStdAddressの値が入ります。
誰かがそれを行う方法を教えてください。
私はこの解決策を試しました
private void CopyColumns(DataTable source, DataTable dest, params string[] columns)
{
foreach (DataRow sourcerow in source.Rows)
{
DataRow destRow = dest.NewRow();
foreach(string colname in columns)
{
destRow[colname] = sourcerow[colname];
}
dest.Rows.Add(destRow);
}
}
CopyColumns(source, destiny, "Column1", "column2");
それは私の問題を解決するのに役立ちます。
これを試して:
for (int i = 0; i < dt2.Rows.Count; i++)
{
dt1.Rows.Add(dt2.Rows[i][0], dt2.Rows[i][1]);
}
for (int k = 0; k < dt2.Rows.Count; k++)
{
dt1.Rows[k]["Name"] = dt2.Rows[k]["StdName"];
dt1.Rows[k]["Address"] = dt2.Rows[k]["StdAddress"];
}
これが古いことは知っていますが、データはどこから来ていますか?
SQL データベースにクエリを実行している場合は、次のように変更できます。
SELECT <column1>, <column2> FROM...
SELECT <column2>, <column1> FROM...
クエリを実行して、必要な列を含むデータテーブルを返します。
これを試して。
DataTable dtEmp = new DataTable("EMP");
dtEmp.Columns.Add("Name", typeof(String));
dtEmp.Columns.Add("Address", typeof(String));
dtEmp.Columns.Add("Contact", typeof(String));
dtEmp.Columns.Add("Marks", typeof(String));
DataTable dtStd = new DataTable("STD");
dtStd.Columns.Add("StdName", typeof(String));
dtStd.Columns.Add("StdAddress", typeof(String));
foreach (DataColumn dc in dtStd.Columns)
{
dtEmp.Columns.Add(dc.ColumnName, dc.DataType);
}
// Import rows from dtStd Table.
それを試してみてください....
DataTable dt1 = new DataTable();
dt1.Columns.Add("col1", typeof(String));
dt1.Columns.Add("col2", typeof(String));
dt1.Columns.Add("col3", typeof(String));
dt1.Columns.Add("col4", typeof(String));
DataTable dt2 = new DataTable();
dt2.Columns.Add("col5", typeof(String));
dt2.Columns.Add("col6", typeof(String));
dt1.Merge(dt2);
よくわかりませんが、これを試すことができます....
Datatable1.Merge(Datable2)
このような出力が得られます