2014-02-08 2 views
0

인벤토리 테이블을 표시하는 데 사용한 코드는 다음과 같습니다.Datagridview의 한 행에 여러 레코드 표시

con = conn.getConnected(); 
datadap.SelectCommand = new SqlCommand("SELECT Inventory.inv_ID AS ID, ItemType.it_type AS Type, Inventory.inv_qty AS [Qty],Inventory.inv_part_no AS [Part No], CONVERT(DECIMAL(10,2),Inventory.inv_whole_price) AS [Discount Price], CONVERT(DECIMAL(10,2),Inventory.inv_retail_price) AS [Selling Price], Inventory.inv_profit_percent AS [Percent] FROM Inventory INNER JOIN Country ON Inventory.count_ID = Country.count_ID INNER JOIN Class ON Inventory.class_ID = Class.class_ID INNER JOIN Dealer ON Inventory.deal_ID = Dealer.deal_ID INNER JOIN ItemType ON Inventory.it_ID = ItemType.it_ID", con); 
dataset.Clear(); 
datadap.Fill(dataset); 
dgInventory.DataSource = dataset.Tables[0]; 

결과 "인벤토리"

Inv_ID Type   Qty Code Cost Sell Percent 
3  Spockets Rear 1 1000 100.00 150.00 33.33 
4  Seat Cover  1 1000 10.00 12.00 16.67 
5  Brake Cable  1 5000 20.00 24.00 2  
6  Seat Cover  1 4400 400.00 411.00 1   
8  Spockets Rear 1 1503 1522.00 1252.00 15  
9  Seat Cover  1 1522 152.00 180.00 12  
10  Seat Cover  1 1522 152.00 180.00 12  
11  Seat Cover  1 1522 152.00 180.00 12 
12  Lights   1 5623 123.00 160.00 10  
13  Brake Shoe  1   90.00 100.00 10  
14  Brake Shoe  1   90.00 100.00 10 
15  Sprockets Front 1 100  2000.00 2200.00 9.0  
16  Spockets Rear 3 1001 615.00 800.00 23.125 

InventoryMake 표 외부 키로 재고 ID를 갖는다 설정. 내가해야 할 것은 다음과 같이 외래 키에 해당하는 MODEL_ID의이 재고 테이블의 한 행에을 Inv_ID 보여주는 것입니다

ID Model_ID Inv_ID 
1  2   15 
7  3   15 
8  5   14 
9  4   14 

같은 InventoryMake 테이블이 보인다.

Inv_ID Type   Model_ID Qty Code Cost Sell Percent 
3  Spockets Rear    1 1000 100.00 150.00 33.33 
4  Seat Cover     1 1000 10.00  12.00 16.67 
5  Brake Cable    1 5000 20.00  24.00 2  
6  Seat Cover     1 4400 400.00 411.00 1   
8  Spockets Rear    1 1503 1522.00 1252.00 15  
9  Seat Cover     1 1522 152.00 180.00 12  
10  Seat Cover     1 1522 152.00 180.00 12  
11  Seat Cover     1 1522 152.00 180.00 12 
12  Lights      1 5623 123.00 160.00 10  
13  Brake Shoe     1   90.00  100.00 10  
14  Brake Shoe  5,4  1   90.00  100.00 10 
15  Sprockets Front 2,3  1 100 2000.00 2200.00 9.0  
16  Sprockets Rear    3 1001 615.00 800.00 23.125 

위의 표와 같이 여러 레코드를 한 행에 표시하는 방법을 알아야합니다. 감사. 추신 : 저는 C#과 MSSQL 2008을 사용하고 있습니다

답변

1

데이터가 데이터베이스에 저장되어있는 경우 쿼리의 일부로 검색 할 수 있습니다. Model_ID를 쉼표로 구분 된 문자열로 선택하십시오.

SELECT GROUP_CONCAT(Model_ID) 
FROM InventoryMake as IM,Inventory as I 
WHERE I.Inv_ID = IM.Inv_ID 
GROUP BY I.Inv_ID 
+0

예 데이터가 DB에 저장됩니다. 나는 어떻게 알고 싶니? – don

+0

나는 당신이 그 질문을 잘못 이해했다고 생각합니다. InventoryMake 테이블의 여러 레코드가 인벤토리 테이블의 일치하는 Inv_ID 열의 한 행에 있어야합니다. – don

+0

나는 이해한다. mySQL에서 GROUP_CONCAT 함수를 사용할 수 있습니다. 이 같은 것 Select GROUP_CONCAT (Model_ID) FR로부터 InventoryMake로 IM, 인벤토리 I where I.Inv_ID = IM.Inv_ID by I.Inv_ID; – HansP

관련 문제