SQlDataReader不更新其结果集

时间:2010-10-18 20:26:40

标签: ado.net sqldatareader

我有一个使用此命令填充的sqldatareader:

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行,即使应用程序中其他位置的函数已经清楚地更新了表。下面几行我也关闭了连接。

这件事是以某种方式缓存的吗?为什么查询不更新?

1 个答案:

答案 0 :(得分:0)

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

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

它没有改变,因为我不断获得对象的内存中表示。