使用 .NextResult
和Multiple
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/