填充数据表ein .NET 4.5时,ADO.NET类缓存行为

时间:2013-11-12 12:20:16

标签: c# .net ado.net datatable .net-4.5

我有一个带循环的代码,它使用存储过程来填充DataTable。存储过程生成的行集始终不同,因为它是在每次调用时更新的计数器。

请注意,对存储过程的每次调用都使用完全相同的参数完成。

我在SQL Manager Studio上测试过,它运行良好。在.NET 3.5中,它也运行良好。

for (int i = 0; i < total; i++)
   {
       SqlCommand cmd= new SqlCommand("MyStoredProcedure", cn);
       cmd.CommandType = CommandType.StoredProcedure;
       cmd.Parameters.AddWithValue("@param1", Convert.ToInt32(Textbox1.Text));

       string AlwaysDifferentCounter = "";
       MyDatatable.Clear();
       MyDatatable = cmd.Fill();


       AlwaysDifferentCounter = MyDatatable.Rows[0]["Counter"].ToString();
       //AlwaysDifferentCounter value always is the same 

   }

迁移到Framework 4.5后,它无法正常工作,因为它正在使用相同的行集填充数据表。

我试图从输出参数获取计数器并且它工作正常,但在行集中它仍然过时。

       AlwaysDifferentCounter = MyDatatable.Parameters["@Counter"].Value.ToString();
       //AlwaysDifferentCounter now it has a different value on each call

为什么会这样? Framework 4.5中是否有任何缓存行为?

0 个答案:

没有答案