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

C# 绑定到存储过程的网格数据被多次调用,c#,asp.net,sql-server,stored-procedures,C#,Asp.net,Sql Server,Stored Procedures,我有一个使用aps:GridView的应用程序。GridView使用调用存储过程的数据源填充。数据源根据一些文本字段将参数传递给存储过程。页面运行速度比预期的慢,所以我正在进行一些检查 我在加载页面时运行了SQL Profiler,看到正在调用存储过程 两次。我仔细阅读了代码,发现在页面加载完成事件中发生了这种情况。在本例中,我为存储过程设置了一个参数的值,然后在GridView上进行了数据绑定以获取数据。当我一步一步地浏览代码时,我观看了SQL分析器。当我进入设置参数的步骤时,存储过程还没有被

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

我在加载页面时运行了SQL Profiler,看到正在调用存储过程 两次。我仔细阅读了代码,发现在页面加载完成事件中发生了这种情况。在本例中,我为存储过程设置了一个参数的值,然后在GridView上进行了数据绑定以获取数据。当我一步一步地浏览代码时,我观看了SQL分析器。当我进入设置参数的步骤时,存储过程还没有被调用。当我逐步完成该步骤并转到DataBind命令(在运行该步骤之前),SQL探查器显示存储过程已被调用。然后我进行了数据绑定,再次调用了StoredProcess

我的问题是,如何设置参数,绑定GridView数据,并且只调用StoredProcess一次?如果我注释掉数据绑定步骤,StoredProcedure永远不会被调用(这对我来说真的很奇怪…)


你能帮我吗?谢谢

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

是否可以发布一些代码,以便我们可以看到您正在执行的操作?因此,使用默认值抑制存储过程调用的唯一方法是解除网格绑定,并在代码隐藏中手动设置GridView的数据源。