![](/img/trans.png)
[英]On Transact-SQL: possible to build a statement to create a new column while using the data of another column all from the same table.
[英]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.