我如何将两个数据表合并到同一行中。我正在使用不同的存储过程将数据获取到数据集中。在使用c#的asp.net中,我想将它们合并,因此与表1的行数相同,并在表2中添加了列。

例如:

DataTable table1 = dsnew.Tables[0];
DataTable table2 = dsSpotsLeft.Tables[0];
table1.Merge(table2);


这让我获取了4行而不是2行。我在这里想念什么?提前致谢!!

最佳答案

在不了解这些表的设计的情况下,其中有些是推测。

听起来像您想执行的是JOIN。例如,如果您有一个看起来像这样的表:

StateId, StateName


和另一个看起来像的桌子

EmployeeId, EmployeeName, StateId


而您想要得到一个看起来像这样的结果集

EmployeeId, EmployeeName, StateId, StateName


您将执行以下查询:

SELECT Employee.EmployeeId, Employee.EmployeeName, Employee.StateId, State.StateName
FROM Employee
INNER JOIN State ON Employee.StateId = State.StateId


这将为您提供结果集,但不会更新任何数据。再次推测您的数据集,我假设您的Employee表版本可能类似于结果集:

EmployeeId, EmployeeName, StateId, StateName


但需要填充StateName。在这种情况下,您可以编写查询:

UPDATE Employee
SET Employee.StateName = State.StateName
FROM Employee
INNER JOIN State ON Employee.StateId = State.StateId


在SQL Server中测试。

10-08 08:11
查看更多