我正在处理一个c#app,希望运行一个查询,然后在ExecuteReader的输出中运行另一个查询。我的问题是,这可以在单个连接中完成,还是每次我想运行新查询时都必须关闭并重新打开连接?
答案 0 :(得分:1)
您可以重复使用该连接。您可能必须更改CommandType,但不需要关闭并重新打开连接。这增加了不必要的开销。
答案 1 :(得分:1)
您不必关闭它。
using(connection...)
{
query1;
query2;
}
答案 2 :(得分:0)
您可以通过一次连接来完成。
您无需打开然后关闭,在这种情况下,首选方法是保持连接打开。
答案 3 :(得分:0)
您可以使用相同的连接在另一个之后运行一个查询。但是,DataReader使用连接来读取结果,因此您必须先读取结果并关闭阅读器,然后才能运行下一个查询。
如果您需要为结果中的每一行运行另一个查询,则首先需要将结果读入集合,以便在循环结果之前关闭阅读器。或者你可以打开另一个连接,但如果可能的话,最好坚持一个连接。
还要考虑是否可以使用连接在单个查询中获取结果。运行单个查询比使用数百个更好。
答案 4 :(得分:0)
您也可以考虑使用DataTableReader这是一个断开连接的阅读器,您可以迭代它的结果,而不必将另一个集合存储在需要两次迭代的内存中。