2012-01-28 3 views
0

현재 데이터 세트를 사용하여 결과를 C# 서비스로 가져오고 있습니다.이 서비스에서 초기 데이터 집합을 반복하고이 결과의 데이터 하위 집합을 가져와야합니다.루프 내에서 C# 루프를 수행합니다.

그래서 식별자를 사용하여 이러한 결과를 반복 한 다음 각각의 아래에 둥지 내에 다른 결과 집합을 표시해야합니다. 데이터 세트를 사용하면 제한된 C# 지식으로 인해 이러한 일이 발생하지 않습니다.

EG> 다른 테이블을 통해 DB 루프의 각 결과에 대해 DB를 반복합니다.

[WebMethod(BufferResponse=true,Description="Viewing Things")] 
public DataSet MyFunctionIs (int IDtoQuery) 
{ 
    MySqlConnection dbConnection = new MySqlConnection("server=na;uid=na;pwd=na;database=na;"); 
    MySqlDataAdapter objCommand = new MySqlDataAdapter("SELECT STATEMENT HERE;", dbConnection); 
    DataSet DS = new DataSet(); 
    objCommand.Fill(DS,"MyFunctionIs"); 
} 

그러나도 사용이 밤은 종종

+0

당신이 foreach는 (datasetrows에서 VAR 행) { foreach는 (GetSubsetDataRows에 var에 subsetRow를 (? :처럼 뭔가를하려고 : 이것은 당신에게 당신이 그것을 수행하려고 할 수있는 방법에 대한 일반적인 아이디어를 제공합니다 행)) { // 중첩 된 행이 하위 집합 행입니다. } } –

+4

보유하고있는 코드를 표시 할 수 있습니까? – Maggie

+0

할 수는 있지만 최선의 선택이 아닐 수도 있습니다. 서비스 경계에서 어떤 형식을 사용 하시겠습니까? –

답변

0

당신이 이런 종류의 문제를 해결할 수 있습니다 내가 각 행의에 반환 쿼리하고 XML 응답 데이터의 하위 집합을 반환 할 필요가 .. 이행 할 것 조인 여러 테이블을 조인하고 하나의 행 세트 만 리턴하는 SQL 조회를 사용합니다.

string ConnectionString = "server=myserver;uid=sa;pwd=secret;database=mydatabase"; 
using (var con = new SqlConnection(ConnectionString)) { 
    string CommandText = "SELECT p.firstname, p.lastname, o.operderdate " + 
         "FROM persons p LEFT JOIN orders o ON p.person_id = o.person_id"; 
    using (var cmd = new SqlCommand(CommandText, con)) { 
     con.Open(); 
     using (var reader = cmd.ExecuteReader()) { 
      while (reader.Read()) { 
       Console.WriteLine("{0} {1}, {2}", reader["firstname"], reader["lastname"], reader["operderdate"]); 
      } 
     } 
    } 
} 
+0

웹 서비스 내에서 사용되는 데이터의 일부를 반환해야하므로 솔루션이 될 수 없습니다. 그래서 하위 쿼리의 노드 집합 정보와 하위 노드 집합이 필요합니다. –

관련 문제