绑定到存储过程的网格数据被多次调用

时间:2011-03-08 16:24:09

标签: c# asp.net sql-server stored-procedures

我有一个使用aps的应用程序:GridView。使用调用存储过程的DataSource填充GridView。 DataSource根据某些文本字段将参数传递给存储过程。页面运行速度比想要慢,所以我正在做一些检查。

我在加载页面时运行SQL事件探查器,并看到正在调用存储过程 两次。我逐步完成了代码,发现在Page Load Complete事件中发生了这种情况。在这种情况下,我为存储过程设置了一个参数的值,然后在GridView上做了一个DataBind来获取数据。当我逐步完成代码时,我看了SQL Profiler。当我进入设置参数的步骤时,尚未调用存储过程。当我逐步完成并进入DataBind命令(在运行该步骤之前)时,SQL事件探查器显示已调用存储过程。然后我做了DataBind并再次调用了StoredProcedure。

我的问题是,如何设置参数,并获取GridView数据绑定,并且只调用一次StoredProcedure?如果我注释掉DataBind步骤,那么StoredProcedure永远不会被调用(这对我来说似乎很奇怪......)。

你能帮我解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:1)

如果您在设计中分配数据源并在后面的代码中执行此操作,则会发生这种情况。