在单个MySQL连接中使用C#查询另一个查询的返回

时间:2009-09-21 14:19:35

标签: c# mysql

我正在处理一个c#app,希望运行一个查询,然后在ExecuteReader的输出中运行另一个查询。我的问题是,这可以在单个连接中完成,还是每次我想运行新查询时都必须关闭并重新打开连接?

5 个答案:

答案 0 :(得分:1)

您可以重复使用该连接。您可能必须更改CommandType,但不需要关闭并重新打开连接。这增加了不必要的开销。

答案 1 :(得分:1)

您不必关闭它。

using(connection...)
{
query1;
query2;
}

答案 2 :(得分:0)

您可以通过一次连接来完成。

您无需打开然后关闭,在这种情况下,首选方法是保持连接打开。

答案 3 :(得分:0)

您可以使用相同的连接在另一个之后运行一个查询。但是,DataReader使用连接来读取结果,因此您必须先读取结果并关闭阅读器,然后才能运行下一个查询。

如果您需要为结果中的每一行运行另一个查询,则首先需要将结果读入集合,以便在循环结果之前关闭阅读器。或者你可以打开另一个连接,但如果可能的话,最好坚持一个连接。

还要考虑是否可以使用连接在单个查询中获取结果。运行单个查询比使用数百个更好。

答案 4 :(得分:0)

您也可以考虑使用DataTableReader这是一个断开连接的阅读器,您可以迭代它的结果,而不必将另一个集合存储在需要两次迭代的内存中。

MSDN reference for DataTableReader