代码之家  ›  专栏  ›  技术社区  ›  Ivan-Mark Debono

是否可以从存储过程返回多个结果集?[副本]

  •  0
  • Ivan-Mark Debono  · 技术社区  · 6 年前

    DataSet :

    var xml = conn.QueryFirst<string>("myproc", new { id }, commandType: CommandType.StoredProcedure);
    
    using (var sr = new StringReader(xml))
    {
        var ds = new DataSet();
        ds.ReadXml(sr);
    
        return ds;
    }
    

    这种方法的问题是,我需要将列转换为正确的数据类型,但这并没有按预期工作。

    是否可以将存储过程的结果返回到 数据集 直接地显然,存储过程随后会相应地更改,以便返回结果集而不是XML。

    衣冠楚楚 QueryMultiple 但是如何将每个结果返回到表中呢。我需要一个额外的步骤来获得结果吗 dynamic 然后创建一个 DataTable

    1 回复  |  直到 4 年前
        1
  •  1
  •   Dan Guzman    6 年前

    可以使用SqlDataAdapter.Fill加载具有多个结果集的数据集,其中包含存储过程返回的每个结果的表:

    using (var connection = new SqlConnection(connectionString))
    using (var command = new SqlCommand("myproc", connection) {  CommandType = CommandType.StoredProcedure })
    using (var dataAdapter = new SqlDataAdapter(command))
    {
        command.Parameters.Add("@id", SqlDbType.Int).Value = id;
        dataAdapter.Fill(dataSet);
    }