簡體   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