繁体   English   中英

如何从SQL Server中的表中循环数据以及如何使用返回的数据查询另一个表。 请参见

[英]How to loop data from a table in sql server and using the returned data to query another table. Please see

这是我要实现的目标:

我在数据库中有一个表,其中有一个名为“ item_code”的列。

我需要查询该表,一次返回一行。 现在,我需要对返回到查询ANOTHER表的一行使用“ item_code”列的值,在这里我将使用它来获取一堆行。 我该怎么做呢?

我尝试在while循环中使用datareader对象,一次获取一行,然后查询该循环内的另一张表以获取所需的行,但是我不知道如何将这些数据放入gridview中(使用datatable?如果是,怎么办?)的方式是,在while循环的每次迭代之后都不会擦除gridview中的前几行。

我知道的将数据放入gridview的唯一方法是使用.Fill(),但是显然,在这种情况下Fill方法不会这样做,因为它将清除gridview中的先前条目。

请帮忙。

我需要查询该表,一次返回一行。 现在,我需要对返回到查询ANOTHER表的一行使用“ item_code”列的值,在这里我将使用它来获取一堆行。 我该怎么做呢?

您可以使用单个SQL查询将“ item_code”上的两个表连接起来,然后从第二个表中检索结果。

您的解决方案将起作用,但是您是正确的,Fill()将擦除表中的内容。 而是使用Merge()

var myMainTable = new DataTable();

foreach(var itemId in itemIds)
{
  var currentTable = new DataTable();
  // submit new query
  myAdapter.Fill(currentTable)
  myMainTable.Merge(currentTable);
}

您可以一步一步将其设置为SQL级别,如下所示:

SELECT Table2.* 
FROM Table2
INNER JOIN Table1 ON Table1.item_code = Table2.item_code
ORDER BY Table2.item_code

当然,如果您需要做一个较小的列表,也可以在WHERE进行筛选。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM