Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NextResult与MARS的区别_C#_Ado.net_Sql Server Mars - Fatal编程技术网

C# NextResult与MARS的区别

C# NextResult与MARS的区别,c#,ado.net,sql-server-mars,C#,Ado.net,Sql Server Mars,使用.NextResult和多个活动结果集之间有什么区别 sqlReader.NextResult(); while (sqlReader.Read()) { MessageBox.Show("From third SQL - " + sqlReader.GetValue(0) + " - " + sqlReader.GetValue(1)); } 火星 private static string G

使用.NextResult
多个
活动结果集之间有什么区别

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

它们几乎是对立的

在中,一段代码按顺序使用多个结果集。它通过调用
.Read
依次处理(尽可能多地)每个结果集,然后当它不再需要处理该结果集时,它调用
.NextResult
以转到下一个结果集。一旦调用了
.NextResult
,就无法继续使用上一个结果集

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


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

+1但它们不是相反的。。。它们可能是正交的,甚至因为在火星上,你甚至可以对每个
DataReader
@xanatos使用多个结果集——我正试图决定最好用什么词来描述它们。你可能是对的,正交更适合。对于Damien所写的,我要补充一点,火星可能很少使用,因为它是通往
SELECT N+1
反模式的道路。最后,如果第一个结果集很小,您可以在集合中读取它,然后执行第二个查询,而如果太大,则执行
选择N+1
将杀死您。因此,火星的使用案例很少。