2016-07-19 5 views
0

SQLServer에서 저장 프로 시저를 사용하여 여러 테이블로 데이터 집합을 채 웁니다. 코드는 간단합니다 :SqlAdapter.Fill (DataSet)은 Xamarin의 저장 프로 시저에서 반환 된 첫 번째 데이터 테이블 만 채 웁니다.

var execProcedureString = "EXEC dbo.SomeProcedure ..." 
var myDataSet = new DataSet(); 
using (var conn = new SqlConnection(connectionString)) 
{ 
    using (var command = new SqlCommand(execProcedureString, conn)) 
    { 
     using (var adapter = new SqlDataAdapter(command)) 
     { 
      adapter.Fill(myDataSet); 
     } 
    } 
} 

그러나 어떻게 든 채우기는 첫 번째 표 (다른 표기가 아닌) 만 작성하고 채 웁니다. 정상적인 데이터를 반환하기 때문에 절차가 아닙니다. 어댑터에 뭔가가 빠졌습니까?

답변

0

여전히 채우기가 작동하지 않는 이유는 아직도 알 수 없습니다. 그것은 이전에 효과가있었습니다. 거기에 walkaround (귀하의 datatables를 지정하지 않고도)하지만 SqlDataReader envolves

var execProcedureString = "EXEC dbo.SomeProcedure ..." 
var myDataSet = new DataSet(); 

using (var conn = new SqlConnection(connectionString)) 
{ 
    using (var command = new SqlCommand(execProcedureString, conn)) 
    { 
     conn.Open(); 
     using (var reader = new command.ExecuteReader()) 
     { 
      while(!reader.IsClosed) //table.Load closes reader if it contains no more rows 
      { 
       var table = new DataTable(); 
       myDataset.Tables.Add(table); 
       table.Load(reader) 
      } 
     } 
    } 
}