【发布时间】:2013-10-22 01:29:40
【问题描述】:
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 的行中的值仅来自 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);
即使我以这种方式创建它们也不起作用。
【问题讨论】:
-
能否请您展示您的 CreateTableStucture() 方法?
-
这些表必须具有相同的结构,但是在第一个表中插入 3 列,在第二个表中插入 4 列,请显示 CreateTableStructure 的代码
-
试试 Table.Merge(Table_2, false, MissingSchemaAction.Add)
-
为什么你的克隆表比原表多一列?
-
因为其余的列都自动填充了dbnulls,原来这个表有11列。很抱歉,我无法向您展示此方法,因为创建此表的方法有几种,而且它们运行良好,因为它们经过了数千次测试。