SqlAdapter.Fill(DataSet) 仅填充 Xamarin 中存储过程返回的第一个数据表

SqlAdapter.Fill(DataSet) fills only first datatable returned by stored procedure in Xamarin

我尝试使用 SQLServer 上的存储过程用多个 table 填充我的数据集。代码很简单:

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);
         }
    }
}

但不知何故 Fill 只先创建(和填充)table(而不是其他)。它与程序无关,因为它 returns 正常数据。我在适配器中遗漏了什么吗?

我仍然不知道为什么 Fill 不起作用。它以前有效。有解决方法(无需指定您的数据表)但它包含 SqlDataReader

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)
             }
         }
    }
}