2012-01-28 21 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"); 
} 

しかし、たとえ使用して、私はそれぞれの行のクエリを実行する必要が履行しようとしてありえない...が、これに返され、XMLレスポンス

+0

あなたは(datasetrows中のvar列)この?: foreachの { foreachのGetSubsetDataRows中(VARのsubsetRow(のような何かをしようとしています行)) { //あなたのネストされた行はサブセットの行です。 } } –

+4

あなたのコードを表示できますか? – Maggie

+0

これは可能ですが、最良の選択ではないかもしれません。サービスの境界でどの形式を使用しますか? –

答えて

0

用データの子セットを返す多くの場合、あなたはこの種の問題を解決することができ合流いくつかのテーブルを結合し、1セットの行のみを返す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

これは、Webサービス内で使用されているデータのサブセットを返す必要があるため、解決策にはなりません。だから私は、サブクエリからの情報の見出しセットと子ノードのセットが必要です。 –