c# - NextResult 和 MARS 的区别

标签 c# ado.net sql-server-mars

使用 .NextResultMultiple Active Result Sets 有什么区别?

sqlReader.NextResult();

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

火星

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

最佳答案

它们几乎是相反的。

.NextResult ,一段代码按顺序使用多个结果集。它通过调用 .Read 依次处理(尽可能多的)每个结果集,然后当它不再想处理该结果集时,它调用 .NextResult移动到下一个。一旦您调用了 .NextResult,就无法继续使用之前的结果集。

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

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

关于c# - NextResult 和 MARS 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18245651/

相关文章:

c# - 在 windows xp 下检测刷新 Action

c# - SQLite3 - "Unable to open database"

c# - 自定义数据提供者?

c# - 用Mars更新7000行效率高吗?

odbc - 来自火星的 ODBC 是来自金星的 ADO/OLEDB 吗?

c# - 通过 .net 将 excel 列格式化为 "yyyy-MM-dd"

c# - 从静态方法获取派生类型

c# - Word应用类问题

.net - 通过 ADO.NET 记录数据库访问

sql - 使用 Postgres 恢复单例查询值