2010-10-18 46 views
0

我有填充用这个命令一个SqlDataReader:SqlDataReader对象不更新其ResultSet

string cmdlookup = String.Format("Select {0} from {1}", strSourceName, strSourceTable); 
    SqlCommand sqlcom = new SqlCommand(cmdlookup, con); 
SqlDataReader rdrsource = cmd.ExecuteReader(); 


      while (rdrsource.Read()) 
      { 


       this.lstSourceValues.Add(System.Convert.ToString(rdrsource[strSourceName])); 



      } 
      rdrsource.Close(); 

有一个在程序修改该表中的其他地方的功能。我已经证实它确实更新了有问题的表格。该表现在有11个值。

本查询结果不会改变。它总是返回5行,即使应用程序中的某个函数明确更新了表。下面几行我也关闭了连接。

这东西是否缓存?为什么不更新查询?

回答

0

我能够解决这个问题。问题是当我调用.Close()和/或.Dispose()时,它并没有真正摆脱这个对象。

相反,我需要切换到使用使用构造。出于某种原因,当我使用using构造时,它肯定会关闭删除对象。

它没有改变,因为我一直在获取相同的内存表示的对象。