0
DataTable Table = CreateTableStucture();
DataTable Table_2 = Table.Clone();
Table.Rows.Add(0, "A", "B");
Table_2.Rows.Add(0, DBNull.Value, DBNull.Value, "C");
Table.Merge(Table_2);

なぜこのコード オブジェクトを実行した後:テーブルには Table_2 からの値だけを持つ行があり、本来のようにマージされません。プログラムで必要なため、これらのテーブルは同じ構造である必要があります。

編集1。

    DataTable Table = new DataTable("table");
    DataColumn KeyCol = new DataColumn("Key", typeof(int));
    DataColumn Col1 = new DataColumn("col1", typeof(string));
    DataColumn Col2 = new DataColumn("col2", typeof(string));
    DataColumn Col3 = new DataColumn("col3", typeof(string));
    DataColumn Col4 = new DataColumn("col4", typeof(string));
    DataColumn Col5 = new DataColumn("col5", typeof(string));
    Table.Columns.Add(KeyCol);
    Table.Columns.Add(Col1);
    Table.Columns.Add(Col2);
    Table.Columns.Add(Col3);
    Table.Columns.Add(Col4);
    Table.Columns.Add(Col5);
    Table.Constraints.Add("keyCon", KeyCol, true);
    DataTable Table_2 = new DataTable();
    Table_2 = Table.Clone();
    Table.Rows.Add(0, "A", "B");
    Table_2.Rows.Add(0, DBNull.Value, DBNull.Value, "C");
    Table.Merge(Table_2);

このように作成しても機能しません。

4

2 に答える 2

1

Table.Copy()代わりに使用する必要がありますData.Clone()

MSDN から:

DataTable.Copy この DataTable の構造とデータの両方をコピーします。

DataTable.Clone すべての DataTable スキーマと制約を含む、DataTable の構造を複製します。

于 2013-10-14T13:10:11.500 に答える