利用C# / NET 3.5。
目前,使用SqlDataAdapter.Fill(SqlDataAdapter.Fill(a)的2个数据表后,1个。
我愿同时把这两个数据表放在一起,同时逐个地进行。 然而,Fill(Fill()方法没有同步版本,即BeginFill()将非常大!
我所尝试的一种做法是(假想):
- SqlCommand1.BeginExecuteReader // 1st query, for DataTable1
- SqlCommand2.BeginExecuteReader // 2nd query, for DataTable2
- SqlCommand1.EndExecuteReader
- SqlCommand2.EndExecuteReader
- DataTable1.Load(DataReader1)
- DataTable2.Load(DataReader2)
However, DataTable.Load() takes a long time:
It takes 3 seconds to do step 1 to step 4.
Step 5 then takes 22 seconds.
Step 6 takes 17 seconds.
So, combined 39 seconds for steps 5 and 6.
最终结果是,这给我带来的利益莫过于仅仅做2个SqlDataAdapter。 Fills,一个接连。 我想,净结果是,整个进程只需要时间最长(或尽可能接近)的时间。
探讨所建议的办法,以最终找到一种确实是一刀切的填补数据表的方法。
或者,我只是自己管理,而滚动了2个单独的路面,每个路面都填满数据。