NextResult和MARS之间的区别

Rod*_*Rod 3 c# ado.net sql-server-mars

using .NextResultMultiple活动结果集之间有什么区别?

sqlReader.NextResult();

while (sqlReader.Read())
{
    MessageBox.Show("From third SQL - " + 
                    sqlReader.GetValue(0) + " - " + 
                    sqlReader.GetValue(1));
}
Run Code Online (Sandbox Code Playgroud)

火星

private static string GetConnectionString()
{
    // To avoid storing the connection string in your code,
    // you can retrive it from a configuration file.
    return "Data Source=(local);Integrated Security=SSPI;" + 
           "Initial Catalog=AdventureWorks;MultipleActiveResultSets=True";
}
Run Code Online (Sandbox Code Playgroud)

Dam*_*ver 5

他们几乎是对立的.

使用时.NextResult,单个代码依次消耗多个结果集.它通过调用依次通过(尽可能多)每个结果集.Read,然后当它不再想要处理该结果集时,它调用.NextResult移动到下一个结果集.一旦调用.NextResult,就无法继续使用以前的结果集.

必须已将所有这些结果集作为提交以生成的原始查询的一部分进行请求DataReader.(作为单独的SELECT语句,或调用包含此类调用的存储过程,或两者的组合)

使用MARS,当您通过a使用结果集时DataReader,可以在生成新的单独连接的同一连接上提交单独的查询DataReader.两个读者可以并行访问.

  • +1但它们并不相反......它们可能是正交的,即使因为使用MARS,您甚至可以对每个`DataReader使用多个结果集 (4认同)